Supporting results for pointwise provable equality.
Data and laws for Derivation in FFL.FirstOrder.LJ.
- identity
{L : Language}
{k : ℕ}
(R : L.Rel k)
(v : Fin k → Semiterm L ℕ 0)
: ⦃Semiformulaᵢ.rel R v⦄ ⊢ᴸᴶ¹ some (Semiformulaᵢ.rel R v)
Identity rule
- cut
{L : Language}
{φ : Propositionᵢ L}
{Γ Δ : Sequent L}
{Ξ : Head L}
: Γ ⊢ᴸᴶ¹ some φ → Δ + ⦃φ⦄ ⊢ᴸᴶ¹ Ξ → Γ + Δ ⊢ᴸᴶ¹ Ξ
Cut rule
- contraction
{L : Language}
{Γ : Multiset (Propositionᵢ L)}
{φ : Propositionᵢ L}
{Ξ : Head L}
: Γ + (⦃φ⦄ + ⦃φ⦄) ⊢ᴸᴶ¹ Ξ → Γ + ⦃φ⦄ ⊢ᴸᴶ¹ Ξ
Left contraction
- weakening
{L : Language}
{Γ : Sequent L}
{Ξ : Head L}
{φ : Propositionᵢ L}
: Γ ⊢ᴸᴶ¹ Ξ → Γ + ⦃φ⦄ ⊢ᴸᴶ¹ Ξ
Left weakening
- weakeningRight
{L : Language}
{Γ : Sequent L}
{φ : Propositionᵢ L}
: Γ ⊢ᴸᴶ¹ none → Γ ⊢ᴸᴶ¹ some φ
Right weakening
- verum
{L : Language}
: 0 ⊢ᴸᴶ¹ some ⊤
Positive introduction of verum
- falsum
{L : Language}
: ⦃⊥⦄ ⊢ᴸᴶ¹ none
Negative introduction of falsum
- positiveImply
{L : Language}
{Γ : Sequent L}
{φ ψ : Propositionᵢ L}
: Γ + ⦃φ⦄ ⊢ᴸᴶ¹ some ψ → Γ ⊢ᴸᴶ¹ some (φ ⇒ₗ ψ)
Positive introduction of implication
- negativeImply
{L : Language}
{Γ Δ : Sequent L}
{Ξ : Head L}
{φ ψ : Propositionᵢ L}
: Γ ⊢ᴸᴶ¹ some φ → Δ + ⦃ψ⦄ ⊢ᴸᴶ¹ Ξ → Γ + Δ + ⦃φ ⇒ₗ ψ⦄ ⊢ᴸᴶ¹ Ξ
Negative introduction of implication
- positiveAnd
{L : Language}
{Γ : Sequent L}
{φ ψ : Propositionᵢ L}
: Γ ⊢ᴸᴶ¹ some φ → Γ ⊢ᴸᴶ¹ some ψ → Γ ⊢ᴸᴶ¹ some (φ ⋏ ψ)
Positive introduction of conjunction
- negativeAnd
{L : Language}
{Γ : Sequent L}
{Ξ : Head L}
{φ ψ : Propositionᵢ L}
: Γ + (⦃φ⦄ + ⦃ψ⦄) ⊢ᴸᴶ¹ Ξ → Γ + ⦃φ ⋏ ψ⦄ ⊢ᴸᴶ¹ Ξ
Negative introduction of conjunction
- positiveOrLeft
{L : Language}
{Γ : Sequent L}
{φ ψ : Propositionᵢ L}
: Γ ⊢ᴸᴶ¹ some φ → Γ ⊢ᴸᴶ¹ some (φ ⋎ ψ)
Positive introduction of disjunction (left)
- positiveOrRight
{L : Language}
{Γ : Sequent L}
{φ ψ : Propositionᵢ L}
: Γ ⊢ᴸᴶ¹ some ψ → Γ ⊢ᴸᴶ¹ some (φ ⋎ ψ)
Positive introduction of disjunction (right)
- negativeOr
{L : Language}
{Γ : Multiset (Propositionᵢ L)}
{φ : Propositionᵢ L}
{Ξ : Head L}
{ψ : Propositionᵢ L}
: Γ + ⦃φ⦄ ⊢ᴸᴶ¹ Ξ → Γ + ⦃ψ⦄ ⊢ᴸᴶ¹ Ξ → Γ + ⦃φ ⋎ ψ⦄ ⊢ᴸᴶ¹ Ξ
Negative introduction of disjunction
- positiveForall
{L : Language}
{Γ : Multiset (Semipropositionᵢ L 0)}
{φ : Semipropositionᵢ L 1}
: Rewriting.shifts Γ ⊢ᴸᴶ¹ some (Rewriting.free φ) → Γ ⊢ᴸᴶ¹ some (∀¹ φ)
Positive introduction of universal quantifier
- negativeForall
{L : Language}
{Γ : Sequent L}
{Ξ : Head L}
{φ : Semipropositionᵢ L 1}
{t : Term L ℕ}
: Γ + ⦃φ/[t]⦄ ⊢ᴸᴶ¹ Ξ → Γ + ⦃∀¹ φ⦄ ⊢ᴸᴶ¹ Ξ
Negative introduction of universal quantifier
- positiveExists
{L : Language}
{Γ : Sequent L}
{φ : Semipropositionᵢ L 1}
{t : Term L ℕ}
: Γ ⊢ᴸᴶ¹ some (φ/[t]) → Γ ⊢ᴸᴶ¹ some (∃¹ φ)
Positive introduction of existential quantifier
- negativeExists
{L : Language}
{Γ : Multiset (Semipropositionᵢ L 0)}
{Ξ : Head L}
{φ : Semipropositionᵢ L 1}
: Rewriting.shifts Γ + ⦃Rewriting.free φ⦄ ⊢ᴸᴶ¹ Ξ.shift → Γ + ⦃∃¹ φ⦄ ⊢ᴸᴶ¹ Ξ
Negative introduction of existential quantifier
Instances For
The «term ⊢ᴸᴶ¹ » construction in FFL.FirstOrder.LJ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
The traversal construction in FFL.FirstOrder.LJ.Derivation.
Equations
- One or more equations did not get rendered due to their size.
- (PointwiseComposition.FFL.FirstOrder.LJ.Derivation.identity R v).traversal = PointwiseComposition.Multiset.Traversal.atom (PointwiseComposition.FFL.FirstOrder.Semiformulaᵢ.rel R v)
- (d.cut e).traversal = d.traversal.add e.traversal.remove
- d.contraction.traversal = (PointwiseComposition.Multiset.Traversal.cast ⋯ d.traversal).remove
- d.weakening.traversal = PointwiseComposition.Multiset.Traversal.succ φ d.traversal
- d.weakeningRight.traversal = d.traversal
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.verum.traversal = PointwiseComposition.Multiset.Traversal.zero
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.falsum.traversal = PointwiseComposition.Multiset.Traversal.atom ⊥
- d.positiveImply.traversal = d.traversal.remove
- (d.negativeImply e).traversal = PointwiseComposition.Multiset.Traversal.succ (φ ⇒ₗ ψ) (d.traversal.add e.traversal.remove)
- (d.positiveAnd a).traversal = d.traversal
- d.negativeAnd.traversal = PointwiseComposition.Multiset.Traversal.succ (φ ⋏ ψ) (PointwiseComposition.Multiset.Traversal.cast ⋯ d.traversal).remove.remove
- d.positiveOrLeft.traversal = d.traversal
- d.positiveOrRight.traversal = d.traversal
- (d.negativeOr a).traversal = PointwiseComposition.Multiset.Traversal.succ (φ ⋎ ψ) d.traversal.remove
- d.negativeForall.traversal = PointwiseComposition.Multiset.Traversal.succ (∀¹ φ) d.traversal.remove
- d.positiveExists.traversal = d.traversal
Instances For
The contra construction in FFL.FirstOrder.LJ.Derivation.
Equations
- d.contra t h = PointwiseComposition.FFL.Structural.ofSubset d.traversal t d h
Instances For
The eta construction in FFL.FirstOrder.LJ.Derivation.
Equations
- One or more equations did not get rendered due to their size.
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.eta (PointwiseComposition.FFL.FirstOrder.Semiformulaᵢ.rel R v) = PointwiseComposition.FFL.FirstOrder.LJ.Derivation.identity R v
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.eta PointwiseComposition.FFL.FirstOrder.Semiformulaᵢ.falsum = PointwiseComposition.FFL.FirstOrder.LJ.Derivation.falsum.weakeningRight
Instances For
The assumption construction in FFL.FirstOrder.LJ.Derivation.
Equations
Instances For
The positive Neg construction in FFL.FirstOrder.LJ.Derivation.
Equations
Instances For
The negative Neg construction in FFL.FirstOrder.LJ.Derivation.
Equations
Instances For
The modus Ponens construction in FFL.FirstOrder.LJ.Derivation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The neg Elim construction in FFL.FirstOrder.LJ.Derivation.
Equations
- dn.negElim dφ = dn.modusPonens dφ
Instances For
The cut One construction in FFL.FirstOrder.LJ.Derivation.
Instances For
The and Left construction in FFL.FirstOrder.LJ.Derivation.
Equations
- d.andLeft = d.cutOne (((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.eta φ).weakening.cast ⋯ ⋯).negativeAnd.cast ⋯ ⋯)
Instances For
The and Right construction in FFL.FirstOrder.LJ.Derivation.
Equations
- d.andRight = d.cutOne (((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.eta ψ).weakening.cast ⋯ ⋯).negativeAnd.cast ⋯ ⋯)
Instances For
The specialize construction in FFL.FirstOrder.LJ.Derivation.
Equations
- d.specialize t = d.cutOne (((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.eta (φ/[t])).cast ⋯ ⋯).negativeForall.cast ⋯ ⋯)
Instances For
The rewrite construction in FFL.FirstOrder.LJ.Derivation.
Equations
- One or more equations did not get rendered due to their size.
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.contraction = ((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).cast ⋯ ⋯).contraction.cast ⋯ ⋯
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.weakening = (PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).weakening.cast ⋯ ⋯
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.weakeningRight = (PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).weakeningRight.cast ⋯ ⋯
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f PointwiseComposition.FFL.FirstOrder.LJ.Derivation.verum = PointwiseComposition.FFL.FirstOrder.LJ.Derivation.verum
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f PointwiseComposition.FFL.FirstOrder.LJ.Derivation.falsum = PointwiseComposition.FFL.FirstOrder.LJ.Derivation.falsum
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.positiveImply = ((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).cast ⋯ ⋯).positiveImply.cast ⋯ ⋯
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.negativeAnd = ((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).cast ⋯ ⋯).negativeAnd.cast ⋯ ⋯
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.positiveOrLeft = (PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).positiveOrLeft
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.positiveOrRight = (PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).positiveOrRight
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.negativeForall = ((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).cast ⋯ ⋯).negativeForall.cast ⋯ ⋯
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d.positiveExists = ((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite f d).cast ⋯ ⋯).positiveExists.cast ⋯ ⋯
Instances For
Height of an LJ derivation, with initial rules at height zero (standard definition).
Equations
- (PointwiseComposition.FFL.FirstOrder.LJ.Derivation.identity R v).height = 0
- (d.cut e).height = max d.height e.height + 1
- d.contraction.height = d.height + 1
- d.weakening.height = d.height + 1
- d.weakeningRight.height = d.height + 1
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.verum.height = 0
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.falsum.height = 0
- d.positiveImply.height = d.height + 1
- (d.negativeImply e).height = max d.height e.height + 1
- (d.positiveAnd a).height = max d.height a.height + 1
- d.negativeAnd.height = d.height + 1
- d.positiveOrLeft.height = d.height + 1
- d.positiveOrRight.height = d.height + 1
- (d.negativeOr a).height = max d.height a.height + 1
- d.positiveForall.height = d.height + 1
- d.negativeForall.height = d.height + 1
- d.positiveExists.height = d.height + 1
- d.negativeExists.height = d.height + 1
Instances For
The map construction in FFL.FirstOrder.LJ.Derivation.
Equations
- d.map f = PointwiseComposition.FFL.FirstOrder.LJ.Derivation.rewrite (fun (x : ℕ) => PointwiseComposition.FFL.FirstOrder.Semiterm.fvar (f x)) d
Instances For
The shift construction in FFL.FirstOrder.LJ.Derivation.
Instances For
The dni construction in FFL.FirstOrder.LJ.Derivation.
Equations
Instances For
Contraposition for singleton derivations (standard intuitionistic reasoning).
Equations
- d.contrapose = (d.negativeNeg.weakeningRight.cast ⋯ ⋯).positiveNeg
Instances For
Double negation preserves derivability, by twice applying contraposition (folklore).
Equations
Instances For
The dne Of Negative construction in FFL.FirstOrder.LJ.Derivation.
Equations
- One or more equations did not get rendered due to their size.
- PointwiseComposition.FFL.FirstOrder.LJ.Derivation.dneOfNegative x_2 = ((PointwiseComposition.FFL.FirstOrder.LJ.Derivation.eta ⊥).cast ⋯ ⋯).positiveNeg.negativeNeg.weakeningRight.cast ⋯ ⋯
Instances For
The of DNOf Negative construction in FFL.FirstOrder.LJ.Derivation.
Equations
Instances For
Mutual LJ derivability from singleton antecedents.
Equations
Instances For
The refl construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Equations
Instances For
The symm construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Instances For
The trans construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Instances For
The neg construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Equations
- d.neg = (d.2.contrapose, d.1.contrapose)
Instances For
The and construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The all construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The dne construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The iffneg Of Neg Iff construction in FFL.FirstOrder.LJ.Derivation.InterDerivation.
Equations
Instances For
The «term𝐋𝐉¹» construction in FFL.FirstOrder.
Equations
- PointwiseComposition.FFL.FirstOrder.«term𝐋𝐉¹» = Lean.ParserDescr.node `PointwiseComposition.FFL.FirstOrder.«term𝐋𝐉¹» 1024 (Lean.ParserDescr.symbol "𝐋𝐉¹")
Instances For
The «term𝐋𝐉¹[ ]» construction in FFL.FirstOrder.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Data and laws for Proof in FFL.FirstOrder.Theoryᵢ.
The axioms construction in
FFL.FirstOrder.Theoryᵢ.Proof.The derivation construction in
FFL.FirstOrder.Theoryᵢ.Proof.
Instances For
The weakening construction in FFL.FirstOrder.Theoryᵢ.Proof.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The deduct construction in FFL.FirstOrder.Theoryᵢ.Proof.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The deduct Inv construction in FFL.FirstOrder.Theoryᵢ.Proof.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.