Logic for inductive definitions Realizability interpretation Decorating proofs Extracting computational content from proofs Helmut Schwichtenberg (j.w.w. Diana Ratiu) Mathematisches Institut, LMU, M¨ unchen National Institute of Informatics, Tokyo, Japan, 13. May 2009 Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Logic for inductive definitions LID ◮ Typed language, with the partial continuous functionals as intended domains (cf. Peano arithmetic and N ). ◮ Base types: “lazy” free algebras. Reason: then constructors are injective and have disjoint ranges. ◮ Terms are those of T + , a common extension of G¨ odel’s T and Plotkin’s PCF. ◮ Equivalence of terms generated by conversion. Identify equivalent terms. ◮ All predicates are defined inductively. Examples: totality, Leibniz equality, ∃ , ∧ , ∨ . ◮ Natural deduction rules for → and ∀ (“minimal logic”). Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs derivation term u A u : A [ u : A ] | M ( λ u A M B ) A → B B → + u A → B | M | N ( M A → B N A ) B A → B A → − B Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Natural deduction: ∀ -rules derivation term | M ( λ x M A ) ∀ x A (Variable Cond.) A ∀ + x (Variable Cond.) ∀ x A | M ( M ∀ x A ( x ) r ) A ( r ) ∀ x A ( x ) r ∀ − A ( r ) Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Predicates and formulas Define F ( � Y ), Preds ( � Y ), Cl X ( � Y ) (formulas, predicates, clauses, all strictly positive in � Y , with X , � Y predicate variables). B ∈ F ( � A ∈ F ( � A ∈ F Y ) Y ) r ∈ F ( � Y l � Y ) , , , A → B ∈ F ( � ∀ x A ∈ F ( � Y ) Y ) C ∈ F ( � P ∈ Preds ( � Y ) Y ) , , x | C } ∈ Preds ( � r ∈ F ( � { � P � Y ) Y ) K 0 , . . . , K k − 1 ∈ Cl X ( � Y ) ( k ≥ 1) , µ X ( K 0 , . . . , K k − 1 ) ∈ Preds ( � Y ) � A ∈ F ( � B 0 , . . . , � � Y ) B n − 1 ∈ F ( n ≥ 0) . � � � � � y ν ( � ∈ Cl X ( � ν< n → X � ∀ � A → ∀ � B ν → X � s ν ) t Y ) x K 0 must be “nullary” (i.e., no “recursive” premises). Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Logic for inductive definitions LID is the system in minimal logic for → and ∀ . Formulas: in F . Axioms: Consider I := µ X ( K 0 , . . . K k − 1 ). Let � � � � � y ν ( � ν< n → X � K i ( X ) := ∀ � A → ∀ � B ν → X � s ν ) . t x Then the corresponding introduction axiom I + is K i ( I ), i.e., i � � � � � y ν ( � ν< n → I � ∀ � A → ∀ � B ν → I � s ν ) t . x The elimination axiom I − is � � � � ∀ � I � x → K i ( I , { � x | C ( � x ) } ) i < k → C ( � x ) , x where � � � � y ν ( � K ( I , { � x | C ( � x ) } ) := ∀ � A → ∀ � B ν → I � s ν ) ν< n → x � � � y ν ( � ν< n → C ( � ∀ � B ν → C ( � s ν )) t ) . Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Example: totality Totality predicates T ρ are defined by induction on ρ . ◮ For base types, e.g. for N . Inductive definition, by the clauses ∀ n ( Tn → T ( S n )) . T 0 , Elimination axiom (writing ∀ n ∈ T A for ∀ n ( Tn → A )): ∀ n ∈ T ( A (0) → ∀ n ∈ T ( A ( n ) → A ( S n )) → A ( n )) . This is the induction scheme. ◮ For ρ → σ . Explicit definition (formally: inductive), by ∀ x ρ ∈ T T σ ( fx ) → T ρ → σ f , writing ∀ x ρ ∈ T A for ∀ x ρ ( T ρ x → A ). Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Example: Leibniz equality Eq ◮ Inductively defined by the introduction axiom ∀ x Eq ( x ρ , x ρ ) . ◮ Elimination axiom: � � ∀ x , y Eq ( x , y ) → ∀ x C ( x , x ) → C ( x , y ) . ◮ With C ( x , y ) := A ( x ) → A ( y ) this implies ∀ x , y ( Eq ( x , y ) → A ( x ) → A ( y )) (compatibility of Eq ). ◮ Compatibility gives symmetry and transitivity of Eq . Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Ex-Falso-Quodlibet need not be assumed, but can be proved. F → A , with F := Eq (ff , tt) (“falsity”) . The proof is in 2 steps. (1) F → Eq ( x ρ , y ρ ), since from Eq (ff , tt) by compatibility Eq [ if tt then x else y ] [ if ff then x else y ] . � �� � � �� � x y (2) Induction on (the sim. definition of) predicates and formulas. ◮ Case I � s . Let K 0 be the nullary clause A 1 → · · · → A n → I � t . By IH: F → A i . Hence I � t . From F we also obtain Eq ( s i , t i ), by (1). Hence I � s by compatibility. ◮ The cases A → B and ∀ x A are clear. Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Embedding classical arithmetic ◮ Let ¬ A := ( A → F ), and ˜ A ˜ ∃ x A := ¬∀ x ¬ A , ∨ B := ( ¬ A → ¬ B → F ) . ◮ Consider a total boolean term r B as representing a decidable predicate. Let atom ( r ) := Eq ( r , tt) . ◮ Prove ∀ p ∈ T ( ¬¬ atom ( p ) → atom ( p )) by boolean induction. ◮ Lift this via → , ∀ using ⊢ ( ¬¬ B → B ) → ¬¬ ( A → B ) → A → B , ⊢ ( ¬¬ A → A ) → ¬¬∀ x A → ∀ x A . ◮ For formulas A built from atom ( · ) by → , ∀ x ∈ T prove stability T ( � x ) → ¬¬ A → A ( FV ( A ) among � x ) . Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Predicates and formulas Realizability interpretation Inductive definition of totality, Leibniz equality, ∃ , ∧ , ∨ Decorating proofs Examples: ∃ , ∧ , ∨ are defined inductively by the introduction and elimination axioms ∀ x ( A → ∃ x A ) , ∃ x A → ∀ x ( A → B ) → B ( x / ∈ FV ( B )) , A → B → A ∧ B , A ∧ B → ( A → B → C ) → C , A → A ∨ B , B → A ∨ B , A ∨ B → ( A → C ) → ( B → C ) → C . Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Computational and non-computational logic Realizability interpretation Formulas as computational problems (Kolmogorov) Decorating proofs Realizability Computational content of proofs ◮ Traditionally arises when the formula contains a strictly positive occurrence of ∃ , as in ∀ x ∃ y A ( x , y ). ◮ For us ∃ is inductively defined, and inductive definitions are the only way computational content can arise. ◮ The computational content of a proof of I � r is a “generation tree”, witnessing how the arguments � r were put into I . ◮ For example, consider the clauses ∀ n ( Even ( n ) → Even ( S ( S n ))) . Even (0) , A generation tree for Even (6) should consist of a single branch with nodes Even (0), Even (2), Even (4) and Even (6). Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Logic for inductive definitions Computational and non-computational logic Realizability interpretation Formulas as computational problems (Kolmogorov) Decorating proofs Realizability Computational and non-computational variants of → , ∀ ◮ Idea: switch on and off the computational effect of → , ∀ . ◮ For instance, in ∀ n ( Even ( n ) → Even ( S ( S n ))) only the premise Even ( n ) should be computationally relevant, not the ∀ n . ◮ Following Ulrich Berger (1993) we distinguish between a computational ∀ c and non-computational (“uniform”) ∀ . ◮ Also: allow a computational → c and non-computational → . Helmut Schwichtenberg (j.w.w. Diana Ratiu) Extracting computational content from proofs
Recommend
More recommend