types for nominal terms and rewrite rules
play

Types for Nominal Terms and Rewrite Rules Maribel Fern andez - PowerPoint PPT Presentation

Types for Nominal Terms and Rewrite Rules Maribel Fern andez Murdoch J. Gabbay DCS, Kings College London TYPES, April 2006 M. Fern andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules Motivations Specifying binding


  1. Types for Nominal Terms and Rewrite Rules Maribel Fern´ andez Murdoch J. Gabbay DCS, King’s College London TYPES, April 2006 M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  2. Motivations Specifying binding operations — informal presentations: • Operational semantics: let a = N in M − → (fun a → M ) N M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  3. Motivations Specifying binding operations — informal presentations: • Operational semantics: let a = N in M − → (fun a → M ) N • β and η -reductions in the λ -calculus: ( λ x . M ) N → M [ x / N ] → ( x �∈ fv( M )) ( λ x . Mx ) M M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  4. Motivations Specifying binding operations — informal presentations: • Operational semantics: let a = N in M − → (fun a → M ) N • β and η -reductions in the λ -calculus: ( λ x . M ) N → M [ x / N ] → ( x �∈ fv( M )) ( λ x . Mx ) M • π -calculus: P | ν a . Q → ν a . ( P | Q ) ( a �∈ fv( P )) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  5. Motivations Specifying binding operations — informal presentations: • Operational semantics: let a = N in M − → (fun a → M ) N • β and η -reductions in the λ -calculus: ( λ x . M ) N → M [ x / N ] → ( x �∈ fv( M )) ( λ x . Mx ) M • π -calculus: P | ν a . Q → ν a . ( P | Q ) ( a �∈ fv( P )) • α -conversion is implicit, but M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  6. Motivations Specifying binding operations — informal presentations: • Operational semantics: let a = N in M − → (fun a → M ) N • β and η -reductions in the λ -calculus: ( λ x . M ) N → M [ x / N ] → ( x �∈ fv( M )) ( λ x . Mx ) M • π -calculus: P | ν a . Q → ν a . ( P | Q ) ( a �∈ fv( P )) • α -conversion is implicit, but • (fun a → M ) � = α (fun b → M ) since a may occur in M . M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  7. Formally: There are several alternatives. • First-order rewrite systems. append ( nil , x ) → x append ( cons ( x , z ) , y ) → cons ( x , append ( z , y )) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  8. Formally: There are several alternatives. • First-order rewrite systems. append ( nil , x ) → x append ( cons ( x , z ) , y ) → cons ( x , append ( z , y )) • No binders. (-) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  9. Formally: There are several alternatives. • First-order rewrite systems. append ( nil , x ) → x append ( cons ( x , z ) , y ) → cons ( x , append ( z , y )) • No binders. (-) • First-order matching: we need to ’specify’ α -conversion. (-) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  10. Formally: There are several alternatives. • First-order rewrite systems. append ( nil , x ) → x append ( cons ( x , z ) , y ) → cons ( x , append ( z , y )) • No binders. (-) • First-order matching: we need to ’specify’ α -conversion. (-) • Simple notion of substitution. (+) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  11. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  12. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  13. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N • Terms with binders. (+) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  14. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N • Terms with binders. (+) • Implicit α -conversion. (+) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  15. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N • Terms with binders. (+) • Implicit α -conversion. (+) • We targeted α but now we have to deal with β too. (-) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  16. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N • Terms with binders. (+) • Implicit α -conversion. (+) • We targeted α but now we have to deal with β too. (-) • Substitution is a meta-operation using β . (-) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  17. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N • Terms with binders. (+) • Implicit α -conversion. (+) • We targeted α but now we have to deal with β too. (-) • Substitution is a meta-operation using β . (-) • Unification is undecidable in general. (-) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  18. Higher-order frameworks • Higher-order rewrite systems (CRS, HRS, etc.) β -rule: app ( lam ([ a ] Z ( a )) , Z ′ ) → Z ( Z ′ ) Then app ( lam ([ a ] f ( a , g ( a )) , b ) → f ( b , g ( b )) using higher-order matching. • Higher-Order Abstract Syntax: let a = N in M ( a ) − → (fun a → M ( a )) N • Terms with binders. (+) • Implicit α -conversion. (+) • We targeted α but now we have to deal with β too. (-) • Substitution is a meta-operation using β . (-) • Unification is undecidable in general. (-) • Leaving name dependencies implicit is convenient (e.g. ∀ x . P ). M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  19. Nominal Terms, Unification, Rewriting Inspired by the work on Nominal Logic and Fresh ML. Key ideas: Freshness conditions a # t , name swapping ( ab ) t . Example: β and η rules as Nominal Rewriting Systems: app ( lam ([ a ] Z ) , Z ′ ) → subst ([ a ] Z , Z ′ ) a # M ⊢ → ( λ ([ a ] app ( M , a )) M ⇒ Terms with binders. M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  20. Nominal Terms, Unification, Rewriting Inspired by the work on Nominal Logic and Fresh ML. Key ideas: Freshness conditions a # t , name swapping ( ab ) t . Example: β and η rules as Nominal Rewriting Systems: app ( lam ([ a ] Z ) , Z ′ ) → subst ([ a ] Z , Z ′ ) a # M ⊢ → ( λ ([ a ] app ( M , a )) M • Terms with binders. ⇒ Matching modulo α (but terms are not defined as α -equivalence classes) M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  21. Nominal Terms, Unification, Rewriting Inspired by the work on Nominal Logic and Fresh ML. Key ideas: Freshness conditions a # t , name swapping ( ab ) t . Example: β and η rules as Nominal Rewriting Systems: app ( lam ([ a ] Z ) , Z ′ ) → subst ([ a ] Z , Z ′ ) a # M ⊢ → ( λ ([ a ] app ( M , a )) M • Terms with binders. • Matching modulo α (but terms are not defined as α -equivalence classes) ⇒ Simple notion of substitution (first order). M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

  22. Nominal Terms, Unification, Rewriting Inspired by the work on Nominal Logic and Fresh ML. Key ideas: Freshness conditions a # t , name swapping ( ab ) t . Example: β and η rules as Nominal Rewriting Systems: app ( lam ([ a ] Z ) , Z ′ ) → subst ([ a ] Z , Z ′ ) a # M ⊢ → ( λ ([ a ] app ( M , a )) M • Terms with binders. • Matching modulo α (but terms are not defined as α -equivalence classes) • Simple notion of substitution (first order). ⇒ Dependencies of terms on names are implicit. M. Fern´ andez, M.J. Gabbay Types for Nominal Terms and Rewrite Rules

Recommend


More recommend