Double Dose of Double-Negation Translations
Olivier Hermant
CRI, MINES ParisTech
June 2, 2014
- O. Hermant (Mines)
Double Negations June 2, 2014 1 / 37
Double Dose of Double-Negation Translations Olivier Hermant CRI, - - PowerPoint PPT Presentation
Double Dose of Double-Negation Translations Olivier Hermant CRI, MINES ParisTech June 2, 2014 O. Hermant (Mines) Double Negations June 2, 2014 1 / 37 Double-Negation Translation: Five Ws The theory : automatic theorem proving: classical
Double Negations June 2, 2014 1 / 37
◮ automatic theorem proving: classical logic ◮ other logics existing: need for translations ◮ in particular: proof-assistants ◮ related to the grounds: ⋆ cut-elimination for sequent calculus ⋆ extensions to Deduction Modulo
◮ a shallow encoding of classical into intuitionistic logic ◮ Zenon modulo’s backend for Dedukti ◮ existing translations: Kolmogorov’s (1925), Gentzen-Gödel’s (1933),
Double Negations June 2, 2014 2 / 37
◮ turns more formulæ into themselves; ◮ shifts a classical proof into an intuitionistic proof of the same formula.
◮ first-order (classical) logic ◮ the principle of excluded-middle ◮ intuitionistic logic ◮ double-negation translations ◮ minimization ◮ if you’re still alive: ⋆ extension to Deduction modulo ⋆ semantic Double-Negation translations ⋆ cut elimination
Double Negations June 2, 2014 3 / 37
◮ atomic formula: P, Q, · · · ◮ special constants: ⊥, ⊤ ◮ assume A, B are formulæ: A ∧ B, A ∨ B, A ⇒ B, ¬A
Double Negations June 2, 2014 4 / 37
◮ atomic formula: P, Q, · · · ◮ special constants: ⊥, ⊤ ◮ assume A, B are formulæ: A ∧ B, A ∨ B, A ⇒ B, ¬A
◮ atomic formula: P(t), Q(t, u), · · · ◮ connectives ∧, ∨, ⇒, ¬, ⊥, ⊤ ◮ quantifiers ∀ and ∃. Assume A is a formula and x a variable: ∀xA,
◮ new category: terms (denoted a, b, c, t, u) and variables (x, y).
◮ Example: (∀xP(x)) ⇒ P(f(a)), ∃y(D(y) ⇒ ∀xD(x))
Double Negations June 2, 2014 4 / 37
◮ a theorem/specification is usually formulated as:
Double Negations June 2, 2014 5 / 37
◮ a theorem/specification is usually formulated as:
Double Negations June 2, 2014 5 / 37
◮ a theorem/specification is usually formulated as:
◮ examples: ⋆ A ⊢ A is a (hopefully provable) sequent ⋆ P(a) ⊢ ∀xP(x) is a (hopefully unprovable) sequent ⋆ A, B ⊢ A ∧ B, A ⊢, A ⊢ ⊥
Double Negations June 2, 2014 5 / 37
◮ a theorem/specification is usually formulated as:
◮ examples: ⋆ A ⊢ A is a (hopefully provable) sequent ⋆ P(a) ⊢ ∀xP(x) is a (hopefully unprovable) sequent ⋆ A, B ⊢ A ∧ B, A ⊢, A ⊢ ⊥ ◮ classical logic needs multiconclusion sequent
⋆ the sequent A, B ⊢ C, D must be understood as: Assume A and B.
Double Negations June 2, 2014 5 / 37
◮ we have the formulæ and the statements (sequents), let’s prove them ◮ many proof systems (even for classical FOL) ◮ today: sequent calculus (Gentzen (1933))
Double Negations June 2, 2014 6 / 37
◮ we have the formulæ and the statements (sequents), let’s prove them ◮ many proof systems (even for classical FOL) ◮ today: sequent calculus (Gentzen (1933))
◮ in order for the consequent to hold · · · ◮ · · · we must show that the antecedent(s) hold
Double Negations June 2, 2014 6 / 37
◮ we have the formulæ and the statements (sequents), let’s prove them ◮ many proof systems (even for classical FOL) ◮ today: sequent calculus (Gentzen (1933))
◮ in order for the consequent to hold · · · ◮ · · · we must show that the antecedent(s) hold
Double Negations June 2, 2014 6 / 37
◮ we have the formulæ and the statements (sequents), let’s prove them ◮ many proof systems (even for classical FOL) ◮ today: sequent calculus (Gentzen (1933))
◮ in order for the consequent to hold · · · ◮ · · · we must show that the antecedent(s) hold
◮ First example of proof:
Double Negations June 2, 2014 6 / 37
◮ we have the formulæ and the statements (sequents), let’s prove them ◮ many proof systems (even for classical FOL) ◮ today: sequent calculus (Gentzen (1933))
◮ in order for the consequent to hold · · · ◮ · · · we must show that the antecedent(s) hold
◮ First example of proof:
Double Negations June 2, 2014 6 / 37
Double Negations June 2, 2014 7 / 37
◮ commutativity of the conjunction:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
◮ an alternative proof:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
◮ an alternative proof:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
◮ an alternative proof:
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
◮ an alternative proof:
◮ this is an example of the liberty allowed by Sequent Calculus
Double Negations June 2, 2014 8 / 37
◮ commutativity of the conjunction:
◮ an alternative proof:
◮ this is an example of the liberty allowed by Sequent Calculus ◮ excluded-middle:
Double Negations June 2, 2014 8 / 37
◮ uniform continuity implies continuity:
◮ the converse is fortunately not provable:
Double Negations June 2, 2014 9 / 37
◮ paradoxical ? let’s prove it:
Double Negations June 2, 2014 10 / 37
◮ paradoxical ? let’s prove it:
◮ basically: either someone does not drink or everybody drinks.
Double Negations June 2, 2014 10 / 37
◮ paradoxical ? let’s prove it:
◮ basically: either someone does not drink or everybody drinks. ◮ not informative: ⋆ no constructive witness (the “best man”) ⋆ “Fermat’s theorem is true” or not “Fermat’s theorem is true”
Double Negations June 2, 2014 10 / 37
◮ paradoxical ? let’s prove it:
◮ basically: either someone does not drink or everybody drinks. ◮ not informative: ⋆ no constructive witness (the “best man”) ⋆ “Fermat’s theorem is true” or not “Fermat’s theorem is true” ◮ PEM (A ∨ ¬A for free) rejected by Brouwer, Heyting, Kolmogorov
⋆ bad also for the “proof-as-program” correpondence (Curry-Howard
Double Negations June 2, 2014 10 / 37
Double Negations June 2, 2014 11 / 37
Double Negations June 2, 2014 12 / 37
◮ commutativity of the disjunction. Attempt #1:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #1:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #1:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #2:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #2:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #2:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #3:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #3:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #3:
Double Negations June 2, 2014 13 / 37
◮ commutativity of the disjunction. Attempt #3:
◮ compare with proofs in classical logic:
◮ in particular, no intuitionistic proof of ⊢ A ∨ ¬A: does it begins with
Double Negations June 2, 2014 13 / 37
◮ is not universal: the world is not Manichean ! (“with us, or against us”)
Double Negations June 2, 2014 14 / 37
◮ is not universal: the world is not Manichean ! (“with us, or against us”) ◮ Equivalent to double-negation principle: ¬¬A ⇒ A.
Double Negations June 2, 2014 14 / 37
◮ is not universal: the world is not Manichean ! (“with us, or against us”) ◮ Equivalent to double-negation principle: ¬¬A ⇒ A.
⋆ Still controversial: “If you are not innocent, then you are guilty” ⋆ Exercises: Show, in classical logic, that ⊢ A ⇒ (¬¬A) and ⊢ (¬¬A) ⇒ A.
Double Negations June 2, 2014 14 / 37
◮ is not universal: the world is not Manichean ! (“with us, or against us”) ◮ Equivalent to double-negation principle: ¬¬A ⇒ A.
⋆ Still controversial: “If you are not innocent, then you are guilty” ⋆ Exercises: Show, in classical logic, that ⊢ A ⇒ (¬¬A) and ⊢ (¬¬A) ⇒ A.
◮ from an intuitionistic point of view, ¬¬B is weaker than B:
Double Negations June 2, 2014 14 / 37
◮ ¬A = A; ◮ B = ¬B otherwise.
Double Negations June 2, 2014 15 / 37
¬A ⊢ ¬A ¬L ¬¬A, ¬A ⊢ ¬R ¬¬A ⊢ ¬¬A
¬L ¬((¬¬A) ⇒ (¬¬A)) ⊢
◮ systematically: go from left to right, apply the same rule, and go from
Double Negations June 2, 2014 16 / 37
¬A ⊢ ¬A ¬L ¬¬A, ¬A ⊢ ¬R ¬¬A ⊢ ¬¬A
¬L ¬((¬¬A) ⇒ (¬¬A)) ⊢
◮ systematically: go from left to right, apply the same rule, and go from
◮ many double negations are superflous: in the previous case, almost
Double Negations June 2, 2014 16 / 37
¬A ⊢ ¬A ¬L ¬¬A, ¬A ⊢ ¬R ¬¬A ⊢ ¬¬A
¬L ¬((¬¬A) ⇒ (¬¬A)) ⊢
◮ systematically: go from left to right, apply the same rule, and go from
◮ many double negations are superflous: in the previous case, almost
◮ Congratulations ! This is the topic of this talk
◮ what do we gain ? We preserve the strength of theorems.
Double Negations June 2, 2014 16 / 37
◮ left-rules seem very similar in both cases ◮ so, lhs formulæ can be translated by themselves ◮ this accounts for polarizing the translations
◮ An occurrence of A in B is positive if: ⋆ B = A ⋆ B = C ⋆ D [⋆ = ∧, ∨] and the occurrence of A is in C or in D and
⋆ B = C ⇒ D and the occurrence of A is in C (resp. in D) and negative
⋆ B = Qx C [Q = ∀, ∃] and the occurrence of A is in C and is positive ◮ Dually for negative occurrences.
Double Negations June 2, 2014 17 / 37
Double Negations June 2, 2014 18 / 37
Double Negations June 2, 2014 19 / 37
Double Negations June 2, 2014 20 / 37
Double Negations June 2, 2014 21 / 37
Double Negations June 2, 2014 22 / 37
Double Negations June 2, 2014 23 / 37
Double Negations June 2, 2014 23 / 37
Double Negations June 2, 2014 23 / 37
Double Negations June 2, 2014 23 / 37
1
2
Double Negations June 2, 2014 24 / 37
Double Negations June 2, 2014 25 / 37
Double Negations June 2, 2014 26 / 37
◮ less negations imposes more discipline. Example:
◮ when An introduces negations (∃, ∨, ¬ and atomic cases) ?? can be
◮ otherwise An remains of the rhs in the LJ proof.
Double Negations June 2, 2014 27 / 37
◮ less negations imposes more discipline. Example:
◮ when An introduces negations (∃, ∨, ¬ and atomic cases) ?? can be
◮ otherwise An remains of the rhs in the LJ proof. ◮ the next rule in π1 and π2 must be on A (resp. B).
Double Negations June 2, 2014 27 / 37
◮ less negations imposes more discipline. Example:
◮ when An introduces negations (∃, ∨, ¬ and atomic cases) ?? can be
◮ otherwise An remains of the rhs in the LJ proof. ◮ the next rule in π1 and π2 must be on A (resp. B). ◮ the liberty of sequent calculus is a sin! How to constrain it ? ◮ use Kleene’s inversion lemma ◮ or ... this is exactly what focusing is about !
Double Negations June 2, 2014 27 / 37
◮ Γ and ∆ ◮ A, the (possibly empty) stoup formula
◮ when the stoup is not empty, the next rule must apply on its formula, ◮ under some conditions, it is possible to move/remove a formula
Double Negations June 2, 2014 28 / 37
Double Negations June 2, 2014 29 / 37
◮ in release, A is either atomic or of the form ∃xB, B ∨ C or ¬B; ◮ in focus, the converse holds: A must not be atomic, nor of the form
◮ the synchronous (outside the stoup) right-rules are ∃R, ¬R, ∨R and
Double Negations June 2, 2014 30 / 37
◮ release is translated by the ¬R rule ◮ focus is translated by the ¬L rule
Double Negations June 2, 2014 31 / 37
◮ release is translated by the ¬R rule ◮ focus is translated by the ¬L rule ◮ ∆n removes the trailing negation on ∃n (¬∀¬), ∨n (¬ ∧ ¬), ¬n (¬)
◮ what a surprise: focus is forbidden on them, so rule on the lhs:
Double Negations June 2, 2014 31 / 37
◮ restarts double-negation everytime we pass a universal quantifier.
Double Negations June 2, 2014 32 / 37
◮ work of Frédéric Gilbert (2013), who noticed: 1
2
3
Double Negations June 2, 2014 33 / 37
◮ How does it work ?
Double Negations June 2, 2014 34 / 37
◮ How does it work ?
◮ How to prove that ? Refine focusing into phases.
Double Negations June 2, 2014 35 / 37
Double Negations June 2, 2014 36 / 37
◮ 58% of Zenon’s modulo proofs are secretly constructive ◮ polarizing the translation of rewrite rules in Deduction modulo: ⋆ problem with cut elimination: a rule is usable in the lhs and rhs ⋆ back to a non-polarized one ⋆ further work: use polarized Deduction modulo ◮ further work: polarize Krivine’s translation
◮ Focusing is a perfect tool to remove double-negations; ◮ antinegation .
Double Negations June 2, 2014 37 / 37