NF weak partition development: Flypitch4.Fol.
Valuation helpers (subst_realize) #
Given a valuation v, a nat n, and an x : S, return v truncated to its first n values, with the rest of the values replaced by x.
Instances For
Language #
Flypitch construction Language.constants, retained by the first-order soundness and
completeness development.
Instances For
preterm and term #
preterm L l is a partially applied term. If applied to l
terms, it becomes a term (l=0).
We use de Bruijn variables.
- var {L : Language} (_k : ℕ) : preterm L 0
- func {L : Language} {l : ℕ} (_f : L.functions l) : preterm L l
- app {L : Language} {l : ℕ} (_t : preterm L (l + 1)) (_s : preterm L 0) : preterm L l
Instances For
Flypitch construction term, retained by the first-order soundness and completeness
development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term&_» = Lean.ParserDescr.node `NFChoice.Fol.«term&_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "&") (Lean.ParserDescr.cat `term 1024))
Instances For
Flypitch construction apps, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.apps t NFChoice.DVec.nil = t
- NFChoice.Fol.apps t (NFChoice.DVec.cons t' ts) = NFChoice.Fol.apps (t.app t') ts
Instances For
Flypitch construction change_arity', retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.preterm.changeArity' x✝ &k = x✝ ▸ &k
- NFChoice.Fol.preterm.changeArity' x✝ (NFChoice.Fol.preterm.func f) = NFChoice.Fol.preterm.func (x✝ ▸ f)
- NFChoice.Fol.preterm.changeArity' x✝ (t₁.app t₂) = (NFChoice.Fol.preterm.changeArity' ⋯ t₁).app t₂
Instances For
Flypitch construction term_of_function, retained by the first-order soundness and
completeness development.
Equations
Instances For
Flypitch construction term.rec, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.term.rec hvar hfunc t = NFChoice.Fol.term.rec.go hvar hfunc t NFChoice.DVec.nil fun (s : NFChoice.Fol.term L) (hs : NFChoice.DVec.pmem s NFChoice.DVec.nil) => Empty.elim hs
Instances For
Structural recursion accumulator.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.term.rec.go hvar hfunc (&k) ts_1 x_4 = ⋯.mpr (hvar k)
- NFChoice.Fol.term.rec.go hvar hfunc (NFChoice.Fol.preterm.func f) ts ih_ts = hfunc f ts ih_ts
Instances For
Flypitch construction term.elim', retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.term.elim' hvar hfunc (&k) x_4 x_5 = hvar k
- NFChoice.Fol.term.elim' hvar hfunc (NFChoice.Fol.preterm.func f) x✝¹ x✝ = hfunc f x✝¹ x✝
Instances For
Flypitch construction term.elim, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.term.elim hvar hfunc t = NFChoice.Fol.term.elim' hvar hfunc t NFChoice.DVec.nil NFChoice.DVec.nil
Instances For
lift_term_at — lifting variables #
lift_term_at t n m raises variables in t which are ≥ m by
n.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_↑_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_↑_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↑ ") (Lean.ParserDescr.cat `term 101))
Instances For
Flypitch construction lift_term1, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.liftTerm1 t = t ↑ 1
Instances For
subst_term — substitution #
subst_term t s n substitutes s for (&n) in t and
reduces variable levels above n.
Equations
- NFChoice.Fol.substTerm (&k) x✝¹ x✝ = NFChoice.Fol.substRealize NFChoice.Fol.preterm.var (x✝¹ ↑ x✝) x✝ k
- NFChoice.Fol.substTerm (NFChoice.Fol.preterm.func f) x✝¹ x✝ = NFChoice.Fol.preterm.func f
- NFChoice.Fol.substTerm (t₁.app t₂) x✝¹ x✝ = (NFChoice.Fol.substTerm t₁ x✝¹ x✝).app (NFChoice.Fol.substTerm t₂ x✝¹ x✝)
Instances For
preformula and formula #
preformula L l is a partially applied formula. If applied
to l terms, it becomes a formula (l=0).
- falsum {L : Language} : preformula 0
- equal {L : Language} (t₁ t₂ : term L) : preformula 0
- rel {L : Language} {l : ℕ} (R : L.relations l) : preformula l
- apprel {L : Language} {l : ℕ} (f : preformula (l + 1)) (t : term L) : preformula l
- imp {L : Language} (f₁ f₂ : preformula 0) : preformula 0
- all {L : Language} (f : preformula 0) : preformula 0
Instances For
Flypitch construction formula, retained by the first-order soundness and completeness
development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term⊥'» = Lean.ParserDescr.node `NFChoice.Fol.«term⊥'» 1024 (Lean.ParserDescr.symbol "⊥'")
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_≃_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_≃_» 88 89 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃ ") (Lean.ParserDescr.cat `term 89))
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⟹_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⟹_» 62 63 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⟹ ") (Lean.ParserDescr.cat `term 62))
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term∀'_» = Lean.ParserDescr.node `NFChoice.Fol.«term∀'_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∀'") (Lean.ParserDescr.cat `term 110))
Instances For
Flypitch construction not', retained by the first-order soundness and completeness
development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term∼_» = Lean.ParserDescr.node `NFChoice.Fol.«term∼_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∼") (Lean.ParserDescr.cat `term 1024))
Instances For
Flypitch construction and', retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.and' f₁ f₂ = NFChoice.Fol.not' (NFChoice.Fol.preformula.imp f₁ (NFChoice.Fol.not' f₂))
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊓'_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊓'_» 69 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊓' ") (Lean.ParserDescr.cat `term 69))
Instances For
Flypitch construction or', retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.or' f₁ f₂ = NFChoice.Fol.preformula.imp (NFChoice.Fol.not' f₁) f₂
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊔'_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊔'_» 68 69 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊔' ") (Lean.ParserDescr.cat `term 68))
Instances For
Flypitch construction biimp, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.biimp f₁ f₂ = NFChoice.Fol.and' (NFChoice.Fol.preformula.imp f₁ f₂) (NFChoice.Fol.preformula.imp f₂ f₁)
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⇔_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⇔_» 61 62 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇔ ") (Lean.ParserDescr.cat `term 62))
Instances For
Flypitch construction ex', retained by the first-order soundness and completeness
development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term∃'_» = Lean.ParserDescr.node `NFChoice.Fol.«term∃'_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∃'") (Lean.ParserDescr.cat `term 110))
Instances For
Flypitch construction apps_rel, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.appsRel f NFChoice.DVec.nil = f
- NFChoice.Fol.appsRel f (NFChoice.DVec.cons t ts) = NFChoice.Fol.appsRel (f.apprel t) ts
Instances For
Flypitch construction formula_of_relation, retained by the first-order soundness and
completeness development.
Equations
Instances For
Flypitch construction formula.rec', retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.formula.rec' hfalsum hequal hrel himp hall (NFChoice.Fol.preformula.rel R) x✝ = hrel R x✝
- NFChoice.Fol.formula.rec' hfalsum hequal hrel himp hall (f.apprel t) x✝ = NFChoice.Fol.formula.rec' hfalsum hequal hrel himp hall f (NFChoice.DVec.cons t x✝)
Instances For
Flypitch construction formula.rec, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.formula.rec hfalsum hequal hrel himp hall f = ⋯ ▸ NFChoice.Fol.formula.rec' hfalsum hequal hrel himp hall f NFChoice.DVec.nil
Instances For
lift_formula_at — lifting variables in formulas #
Flypitch construction lift_formula_at, retained by the first-order soundness and
completeness development.
Equations
- (⊥' ↑f' x✝¹ # x✝) = ⊥'
- (NFChoice.Fol.preformula.equal t₁ t₂ ↑f' x✝¹ # x✝) = NFChoice.Fol.preformula.equal (t₁ ↑' x✝¹ # x✝) (t₂ ↑' x✝¹ # x✝)
- (NFChoice.Fol.preformula.rel R ↑f' x✝¹ # x✝) = NFChoice.Fol.preformula.rel R
- (f.apprel t ↑f' x✝¹ # x✝) = (f ↑f' x✝¹ # x✝).apprel (t ↑' x✝¹ # x✝)
- (f₁.imp f₂ ↑f' x✝¹ # x✝) = (f₁ ↑f' x✝¹ # x✝).imp (f₂ ↑f' x✝¹ # x✝)
- (f.all ↑f' x✝¹ # x✝) = (f ↑f' x✝¹ # x✝ + 1).all
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction lift_formula, retained by the first-order soundness and completeness
development.
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_↑f_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_↑f_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↑f ") (Lean.ParserDescr.cat `term 101))
Instances For
Flypitch construction lift_formula1, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.liftFormula1 f = f ↑f 1
Instances For
subst_formula — substitution into formulas #
Flypitch construction subst_formula, retained by the first-order soundness and
completeness development.
Equations
- ⊥' [x✝¹ // x✝]f = ⊥'
- NFChoice.Fol.preformula.equal t₁ t₂ [x✝¹ // x✝]f = NFChoice.Fol.preformula.equal (NFChoice.Fol.substTerm t₁ x✝¹ x✝) (NFChoice.Fol.substTerm t₂ x✝¹ x✝)
- NFChoice.Fol.preformula.rel R [x✝¹ // x✝]f = NFChoice.Fol.preformula.rel R
- f.apprel t [x✝¹ // x✝]f = f [x✝¹ // x✝]f.apprel (NFChoice.Fol.substTerm t x✝¹ x✝)
- f₁.imp f₂ [x✝¹ // x✝]f = f₁ [x✝¹ // x✝]f.imp (f₂ [x✝¹ // x✝]f)
- f.all [x✝¹ // x✝]f = f [x✝¹ // x✝ + 1]f.all
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
count_quantifiers and quantifier_free #
Flypitch construction count_quantifiers, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.countQuantifiers ⊥' = 0
- NFChoice.Fol.countQuantifiers (NFChoice.Fol.preformula.equal t₁ t₂) = 0
- NFChoice.Fol.countQuantifiers (NFChoice.Fol.preformula.rel R) = 0
- NFChoice.Fol.countQuantifiers (f.apprel t) = 0
- NFChoice.Fol.countQuantifiers (f₁.imp f₂) = NFChoice.Fol.countQuantifiers f₁ + NFChoice.Fol.countQuantifiers f₂
- NFChoice.Fol.countQuantifiers f.all = NFChoice.Fol.countQuantifiers f + 1
Instances For
Flypitch construction quantifier_free, retained by the first-order soundness and
completeness development.
Equations
Instances For
prf — the proof system (src/fol.lean lines 816-824) #
prf Γ A is the type of proofs of A from hypotheses Γ in
classical first-order logic.
- axm {L : Language} {Γ : Set (formula L)} {A : formula L} (h : A ∈ Γ) : prf Γ A
- impI {L : Language} {Γ : Set (formula L)} {A B : formula L} (h : prf (insert A Γ) B) : prf Γ (preformula.imp A B)
- impE {L : Language} {Γ : Set (formula L)} (A : preformula 0) {B : preformula 0} (h₁ : prf Γ (A.imp B)) (h₂ : prf Γ A) : prf Γ B
- falsumE {L : Language} {Γ : Set (formula L)} {A : formula L} (h : prf (insert (not' A) Γ) ⊥') : prf Γ A
- allI {L : Language} {Γ : Set (preformula 0)} {A : formula L} (h : prf (liftFormula1 '' Γ) A) : prf Γ (preformula.all A)
- allE₂ {L : Language} {Γ : Set (formula L)} (A : preformula 0) (t : term L) (h : prf Γ A.all) : prf Γ (A [t // 0]f)
- ref {L : Language} (Γ : Set (formula L)) (t : term L) : prf Γ (preformula.equal t t)
- subst₂ {L : Language} {Γ : Set (formula L)} (s t : term L) (f : formula L) (h₁ : prf Γ (preformula.equal s t)) (h₂ : prf Γ (f [s // 0]f)) : prf Γ (f [t // 0]f)
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊢_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊢_» 51 52 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢ ") (Lean.ParserDescr.cat `term 52))
Instances For
Flypitch construction provable, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.provable T f = Nonempty (NFChoice.Fol.prf T f)
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊢'_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊢'_» 51 52 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢' ") (Lean.ParserDescr.cat `term 52))
Instances For
Derived proof rules (src/fol.lean lines 832-1103) #
Flypitch construction allE, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.allE A t H₁ H₂ = H₂ ▸ NFChoice.Fol.prf.allE₂ A t H₁
Instances For
Flypitch construction prf_subst, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.prfSubst f₁ H₁ H₂ H₃ = H₃ ▸ NFChoice.Fol.prf.subst₂ s t f₁ H₁ H₂
Instances For
Flypitch construction axm1, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction weakening, retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction prf_substitution, retained by the first-order soundness and
completeness development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction reflect_prf_lift1, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.reflectPrfLift1 h = ⋯.mpr (⋯.mp (NFChoice.Fol.prfSubstitution (&0) 0 h))
Instances For
Flypitch construction weakening1, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction weakening2, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction deduction, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction notI, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.notI H = H
Instances For
Flypitch construction andI, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.andI H₁ H₂ = (NFChoice.Fol.prf.impE f₂ (NFChoice.Fol.prf.impE f₁ NFChoice.Fol.axm1 (NFChoice.Fol.weakening1 H₁)) (NFChoice.Fol.weakening1 H₂)).impI
Instances For
Flypitch construction andE1, retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction orE, retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction biimpI, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.biimpI H₁ H₂ = NFChoice.Fol.andI H₁.impI H₂.impI
Instances For
Flypitch construction exI, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.exI t H = (NFChoice.Fol.prf.impE (f [t // 0]f) (NFChoice.Fol.prf.allE₂ (NFChoice.Fol.not' f) t NFChoice.Fol.axm1) (NFChoice.Fol.weakening1 H)).impI
Instances For
Flypitch construction exE, retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction ex_not_of_not_all, retained by the first-order soundness and
completeness development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction not_and_self, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction prf_symm, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.prfSymm H = NFChoice.Fol.prfSubst (NFChoice.Fol.preformula.equal (&0) (s ↑ 1)) H (⋯.mpr (NFChoice.Fol.prf.ref Γ s)) ⋯
Instances For
Flypitch construction prf_trans, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.prfTrans H H' = NFChoice.Fol.prfSubst (NFChoice.Fol.preformula.equal (t₁ ↑ 1) &0) H' (⋯.mpr H) ⋯
Instances For
Flypitch construction prf_congr, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.prfCongr s H = NFChoice.Fol.prfSubst (NFChoice.Fol.preformula.equal (NFChoice.Fol.substTerm s t₁ 0 ↑ 1) s) H (⋯.mpr (NFChoice.Fol.prf.ref Γ (NFChoice.Fol.substTerm s t₁ 0))) ⋯
Instances For
Flypitch construction app_congr, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.appCongr s H = ⋯.mp (NFChoice.Fol.prfCongr ((s ↑ 1).app &0) H)
Instances For
Flypitch construction apprel_congr, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.apprelCongr f H H₂ = NFChoice.Fol.prfSubst ((f ↑f 1).apprel &0) H (⋯.mpr H₂) ⋯
Instances For
Flypitch construction imp_trans, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.impTrans H₁ H₂ = (NFChoice.Fol.prf.impE f₂ (NFChoice.Fol.weakening1 H₂) (NFChoice.Fol.prf.impE f₁ (NFChoice.Fol.weakening1 H₁) NFChoice.Fol.axm1)).impI
Instances For
Flypitch construction biimp_refl, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction biimp_trans, retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction equal_preterms, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.equalPreterms T t₁ t₂ = ((ts : NFChoice.DVec (NFChoice.Fol.term L) l) → NFChoice.Fol.prf T (NFChoice.Fol.preformula.equal (NFChoice.Fol.apps t₁ ts) (NFChoice.Fol.apps t₂ ts)))
Instances For
Flypitch construction equal_preterms_app, retained by the first-order soundness and
completeness development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction equal_preterms_refl, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.equalPretermsRefl T t xs = NFChoice.Fol.prf.ref T (NFChoice.Fol.apps t xs)
Instances For
Flypitch construction equiv_preformulae, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.equivPreformulae T f₁ f₂ = ((ts : NFChoice.DVec (NFChoice.Fol.term L) l) → NFChoice.Fol.prf T (NFChoice.Fol.biimp (NFChoice.Fol.appsRel f₁ ts) (NFChoice.Fol.appsRel f₂ ts)))
Instances For
Flypitch construction equiv_preformulae_apprel, retained by the first-order soundness and
completeness development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction equiv_preformulae_refl, retained by the first-order soundness and
completeness development.
Equations
Instances For
Theory and consistency (src/fol.lean lines 1105-) #
Flypitch construction Theory, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction is_consistent, retained by the first-order soundness and
completeness development.
Equations
Instances For
Structure — L-structures (src/fol.lean line 1109) #
Flypitch construction Structure, retained by the first-order soundness and completeness
development.
- carrier : Type u
The
carriercomponent of the corresponding first-order structure. The
fun_mapcomponent of the corresponding first-order structure.The
rel_mapcomponent of the corresponding first-order structure.
Instances For
Equations
- NFChoice.Fol.instCoeSortStructureType = { coe := fun (S : NFChoice.Fol.Structure L) => S.carrier }
realize_term — realization of terms in a structure #
Flypitch construction realize_term, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.realizeTerm v (&k) x_3 = v k
- NFChoice.Fol.realizeTerm v (NFChoice.Fol.preterm.func f) x✝ = S.funMap f x✝
- NFChoice.Fol.realizeTerm v (t₁.app t₂) x✝ = NFChoice.Fol.realizeTerm v t₁ (NFChoice.DVec.cons (NFChoice.Fol.realizeTerm v t₂ NFChoice.DVec.nil) x✝)
Instances For
realize_formula — satisfaction relation #
Flypitch construction realize_formula, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.realizeFormula x✝ ⊥' x_4 = False
- NFChoice.Fol.realizeFormula x✝ (NFChoice.Fol.preformula.equal t₁ t₂) x_4 = (NFChoice.Fol.realizeTerm x✝ t₁ NFChoice.DVec.nil = NFChoice.Fol.realizeTerm x✝ t₂ NFChoice.DVec.nil)
- NFChoice.Fol.realizeFormula x✝¹ (NFChoice.Fol.preformula.rel R) x✝ = S.relMap R x✝
- NFChoice.Fol.realizeFormula x✝¹ (f.apprel t) x✝ = NFChoice.Fol.realizeFormula x✝¹ f (NFChoice.DVec.cons (NFChoice.Fol.realizeTerm x✝¹ t NFChoice.DVec.nil) x✝)
- NFChoice.Fol.realizeFormula x✝ (f₁.imp f₂) xs = (NFChoice.Fol.realizeFormula x✝ f₁ xs → NFChoice.Fol.realizeFormula x✝ f₂ xs)
- NFChoice.Fol.realizeFormula x✝ f.all x_4 = ∀ (x : S.carrier), NFChoice.Fol.realizeFormula (NFChoice.Fol.substRealize x✝ x 0) f NFChoice.DVec.nil
Instances For
Semantic notions — satisfaction and models #
Flypitch construction satisfied_in, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.satisfiedIn S f = ∀ (v : ℕ → S.carrier), NFChoice.Fol.realizeFormula v f NFChoice.DVec.nil
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊨ₛ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊨ₛ_» 51 52 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊨ₛ ") (Lean.ParserDescr.cat `term 52))
Instances For
Flypitch construction all_satisfied_in, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.allSatisfiedIn S T = ∀ ⦃f : NFChoice.Fol.formula L⦄, f ∈ T → NFChoice.Fol.satisfiedIn S f
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊨_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊨_» 51 52 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊨ ") (Lean.ParserDescr.cat `term 52))
Instances For
Flypitch construction all_satisfied, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.allSatisfied T T' = ∀ ⦃f : NFChoice.Fol.formula L⦄, f ∈ T' → NFChoice.Fol.satisfied T f
Instances For
Soundness (src/fol.lean lines 1247-1261) #
bounded_preterm, bounded_term, closed_preterm #
(src/fol.lean lines 1265-1660)
A bounded preterm: bounded_preterm L n l is a partially
applied term with at most n
free de Bruijn variables (indexed by Fin n) needing l more
arguments.
- bd_var {L : Language} {n : ℕ} (_k : Fin n) : BoundedPreterm L n 0
- bd_func {L : Language} {n l : ℕ} (_f : L.functions l) : BoundedPreterm L n l
- bd_app {L : Language} {n l : ℕ} (_t : BoundedPreterm L n (l + 1)) (_s : BoundedPreterm L n 0) : BoundedPreterm L n l
Instances For
A fully applied bounded term with at most n free variables.
Equations
Instances For
A closed preterm (no free variables), needing l more
arguments.
Equations
Instances For
A closed term: no free variables and fully applied.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term&ᵇ_» = Lean.ParserDescr.node `NFChoice.Fol.«term&ᵇ_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "&ᵇ") (Lean.ParserDescr.cat `term 1024))
Instances For
Flypitch construction bd_const, retained by the first-order soundness and completeness
development.
Equations
Instances For
Apply a bounded preterm of level l + m to m bounded terms
to get level l.
Equations
- NFChoice.Fol.bdApps' t NFChoice.DVec.nil = t
- NFChoice.Fol.bdApps' t (NFChoice.DVec.cons x_4 xs) = NFChoice.Fol.bdApps' (t.bd_app x_4) xs
Instances For
Apply a bounded preterm of level l to l bounded terms to
get a bounded term.
Equations
- NFChoice.Fol.bdApps t NFChoice.DVec.nil = t
- NFChoice.Fol.bdApps t (NFChoice.DVec.cons t' ts) = NFChoice.Fol.bdApps (t.bd_app t') ts
Instances For
Forget boundedness: map a bounded preterm to an ordinary preterm.
Equations
- (NFChoice.Fol.bd_var k).fst = &↑k
- (NFChoice.Fol.bd_func f).fst = NFChoice.Fol.preterm.func f
- (t.bd_app s).fst = t.fst.app s.fst
Instances For
Equality of bounded preterms is determined by their underlying preterms.
Cast a bounded_preterm L n l to one with a larger bound m ≥ n.
Equations
- NFChoice.Fol.BoundedPreterm.cast h (NFChoice.Fol.bd_var k) = NFChoice.Fol.bd_var ⟨↑k, ⋯⟩
- NFChoice.Fol.BoundedPreterm.cast h (NFChoice.Fol.bd_func f) = NFChoice.Fol.bd_func f
- NFChoice.Fol.BoundedPreterm.cast h (t.bd_app s) = (NFChoice.Fol.BoundedPreterm.cast h t).bd_app (NFChoice.Fol.BoundedPreterm.cast h s)
Instances For
Flypitch construction cast_eq, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction cast1, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction cast0, retained by the first-order soundness and completeness
development.
Equations
Instances For
bounded_term.rec — custom recursion principle #
Custom recursion principle for bounded terms, analogous to
term.rec.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Structural recursion accumulator.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.boundedTerm.rec.go hvar hfunc (NFChoice.Fol.bd_var k) ts_1 x_4 = ⋯.mpr (hvar k)
- NFChoice.Fol.boundedTerm.rec.go hvar hfunc (NFChoice.Fol.bd_func f) ts ih_ts = hfunc f ts ih_ts
Instances For
Version of bounded_term.rec specialized to n + 1.
Equations
- NFChoice.Fol.boundedTerm.rec1 hvar hfunc = NFChoice.Fol.boundedTerm.rec hvar fun {l : ℕ} => hfunc
Instances For
Lift and substitution — irrel lemmas #
realize_bounded_term #
Realize a bounded preterm given a valuation vector v : DVec S n and extra args xs : DVec S l.
Equations
- NFChoice.Fol.realizeBoundedTerm v (NFChoice.Fol.bd_var k) x_3 = v.nth ↑k ⋯
- NFChoice.Fol.realizeBoundedTerm v (NFChoice.Fol.bd_func f) x✝ = S.funMap f x✝
- NFChoice.Fol.realizeBoundedTerm v (t₁.bd_app t₂) x✝ = NFChoice.Fol.realizeBoundedTerm v t₁ (NFChoice.DVec.cons (NFChoice.Fol.realizeBoundedTerm v t₂ NFChoice.DVec.nil) x✝)
Instances For
Notation for realizing a bounded term with an empty extra argument list.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction realize_closed_term, retained by the first-order soundness and
completeness development.
Equations
Instances For
lift_bounded_term_at — lifting bounded terms #
Lift a bounded term by inserting n' new variables at
position m.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction lift_bounded_term, retained by the first-order soundness and
completeness development.
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_↑ᵇ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_↑ᵇ_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↑ᵇ ") (Lean.ParserDescr.cat `term 101))
Instances For
Flypitch construction lift_bounded_term1, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.liftBoundedTerm1 t = t ↑ᵇ 1
Instances For
subst_bounded_term — substitution in bounded terms #
Substitute the variable at position n (within the bound `n
- n' + 1
) with a bounded terms`.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.substBoundedTerm (NFChoice.Fol.bd_func f) x✝ = NFChoice.Fol.bd_func f
- NFChoice.Fol.substBoundedTerm (t₁.bd_app t₂) x✝ = (NFChoice.Fol.substBoundedTerm t₁ x✝).bd_app (NFChoice.Fol.substBoundedTerm t₂ x✝)
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Substitute the last (max) variable with a closed term.
Equations
Instances For
Substitute the last (max) variable with a closed term.
Equations
Instances For
Flypitch construction bounded_term_of_function, retained by the first-order soundness and
completeness development.
Equations
Instances For
realize_bounded_term lemmas #
When realizing a closed term, the realizing dvector is irrelevant.
bounded_preformula, bounded_formula, presentence, sentence #
(src/fol.lean lines 1660-2200)
A bounded pre-formula: bounded_preformula L n l is a
partially applied formula
with at most n free de Bruijn variables (< n), needing l more
term arguments.
bounded_formula L n = bounded_preformula L n 0, and sentence L = bounded_preformula L 0 0.
- bd_falsum {L : Language} {n : ℕ} : BoundedPreformula L n 0
- bd_equal {L : Language} {n : ℕ} (_t₁ _t₂ : boundedTerm L n) : BoundedPreformula L n 0
- bd_rel {L : Language} {n l : ℕ} (_R : L.relations l) : BoundedPreformula L n l
- bd_apprel {L : Language} {n l : ℕ} (_f : BoundedPreformula L n (l + 1)) (_t : boundedTerm L n) : BoundedPreformula L n l
- bd_imp {L : Language} {n : ℕ} (_f₁ _f₂ : BoundedPreformula L n 0) : BoundedPreformula L n 0
- bd_all {L : Language} {n : ℕ} (_f : BoundedPreformula L (n + 1) 0) : BoundedPreformula L n 0
Instances For
Flypitch construction bounded_formula, retained by the first-order soundness and
completeness development.
Equations
Instances For
Flypitch construction presentence, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction sentence, retained by the first-order soundness and completeness
development.
Equations
Instances For
bounded_preformula notations #
Flypitch construction bd_not, retained by the first-order soundness and completeness
development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term∼ᵇ_» = Lean.ParserDescr.node `NFChoice.Fol.«term∼ᵇ_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∼ᵇ") (Lean.ParserDescr.cat `term 1024))
Instances For
Flypitch construction bd_and, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.bdAnd f₁ f₂ = NFChoice.Fol.bdNot (NFChoice.Fol.bd_imp f₁ (NFChoice.Fol.bdNot f₂))
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊓ᵇ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊓ᵇ_» 69 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊓ᵇ ") (Lean.ParserDescr.cat `term 69))
Instances For
Flypitch construction bd_or, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.bdOr f₁ f₂ = NFChoice.Fol.bd_imp (NFChoice.Fol.bdNot f₁) f₂
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊔ᵇ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊔ᵇ_» 68 69 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊔ᵇ ") (Lean.ParserDescr.cat `term 68))
Instances For
Flypitch construction bd_biimp, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.bdBiimp f₁ f₂ = NFChoice.Fol.bdAnd (NFChoice.Fol.bd_imp f₁ f₂) (NFChoice.Fol.bd_imp f₂ f₁)
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⇔ᵇ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⇔ᵇ_» 61 62 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇔ᵇ ") (Lean.ParserDescr.cat `term 62))
Instances For
Flypitch construction bd_ex, retained by the first-order soundness and completeness
development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term∃ᵇ_» = Lean.ParserDescr.node `NFChoice.Fol.«term∃ᵇ_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∃ᵇ") (Lean.ParserDescr.cat `term 110))
Instances For
bd_apps_rel #
Flypitch construction bd_apps_rel, retained by the first-order soundness and completeness
development.
Equations
- NFChoice.Fol.bdAppsRel f NFChoice.DVec.nil = f
- NFChoice.Fol.bdAppsRel f (NFChoice.DVec.cons t ts) = NFChoice.Fol.bdAppsRel (f.bd_apprel t) ts
Instances For
namespace bounded_preformula #
Forget boundedness: map a bounded_preformula to an ordinary preformula.
Equations
- NFChoice.Fol.bd_falsum.fst = ⊥'
- (NFChoice.Fol.bd_equal t₁ t₂).fst = NFChoice.Fol.preformula.equal (NFChoice.Fol.BoundedPreterm.fst t₁) (NFChoice.Fol.BoundedPreterm.fst t₂)
- (NFChoice.Fol.bd_rel R).fst = NFChoice.Fol.preformula.rel R
- (f.bd_apprel t).fst = f.fst.apprel (NFChoice.Fol.BoundedPreterm.fst t)
- (f₁.bd_imp f₂).fst = f₁.fst.imp f₂.fst
- f.bd_all.fst = f.fst.all
Instances For
Equality of bounded_preformulas is determined by their underlying preformulas.
Cast a bounded_preformula to one with a larger variable bound.
Equations
- NFChoice.Fol.BoundedPreformula.cast h NFChoice.Fol.bd_falsum = NFChoice.Fol.bd_falsum
- NFChoice.Fol.BoundedPreformula.cast h (NFChoice.Fol.bd_equal t₁ t₂) = NFChoice.Fol.bd_equal (NFChoice.Fol.BoundedPreterm.cast h t₁) (NFChoice.Fol.BoundedPreterm.cast h t₂)
- NFChoice.Fol.BoundedPreformula.cast h (NFChoice.Fol.bd_rel R) = NFChoice.Fol.bd_rel R
- NFChoice.Fol.BoundedPreformula.cast h (f.bd_apprel t) = (NFChoice.Fol.BoundedPreformula.cast h f).bd_apprel (NFChoice.Fol.BoundedPreterm.cast h t)
- NFChoice.Fol.BoundedPreformula.cast h (f₁.bd_imp f₂) = (NFChoice.Fol.BoundedPreformula.cast h f₁).bd_imp (NFChoice.Fol.BoundedPreformula.cast h f₂)
- NFChoice.Fol.BoundedPreformula.cast h f.bd_all = (NFChoice.Fol.BoundedPreformula.cast ⋯ f).bd_all
Instances For
Flypitch construction cast_eq, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction cast_eqr, retained by the first-order soundness and completeness
development.
Equations
Instances For
Flypitch construction cast1, retained by the first-order soundness and completeness
development.
Equations
Instances For
A bounded_preformula is quantifier-free if its underlying preformula is.
Equations
Instances For
namespace presentence #
Flypitch construction cast0, retained by the first-order soundness and completeness
development.
Equations
Instances For
Irrel lemmas for bounded formulas #
realize_bounded_formula #
Flypitch construction realize_bounded_formula, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.realizeBoundedFormula x✝ NFChoice.Fol.bd_falsum x_6 = False
- NFChoice.Fol.realizeBoundedFormula x✝ (NFChoice.Fol.bd_equal t₁ t₂) x_6 = (NFChoice.Fol.realizeBoundedTerm x✝ t₁ NFChoice.DVec.nil = NFChoice.Fol.realizeBoundedTerm x✝ t₂ NFChoice.DVec.nil)
- NFChoice.Fol.realizeBoundedFormula x✝¹ (NFChoice.Fol.bd_rel R) x✝ = S.relMap R x✝
- NFChoice.Fol.realizeBoundedFormula x✝¹ (f.bd_apprel t) x✝ = NFChoice.Fol.realizeBoundedFormula x✝¹ f (NFChoice.DVec.cons (NFChoice.Fol.realizeBoundedTerm x✝¹ t NFChoice.DVec.nil) x✝)
- NFChoice.Fol.realizeBoundedFormula x✝ (f₁.bd_imp f₂) xs = (NFChoice.Fol.realizeBoundedFormula x✝ f₁ xs → NFChoice.Fol.realizeBoundedFormula x✝ f₂ xs)
- NFChoice.Fol.realizeBoundedFormula x✝ f.bd_all xs = ∀ (x : S.carrier), NFChoice.Fol.realizeBoundedFormula (NFChoice.DVec.cons x x✝) f xs
Instances For
Flypitch construction realize_sentence, retained by the first-order soundness and
completeness development.
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊨ₘ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊨ₘ_» 51 52 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊨ₘ ") (Lean.ParserDescr.cat `term 52))
Instances For
realize_bounded_formula lemmas #
bounded_formula_of_relation #
Flypitch construction bounded_formula_of_relation, retained by the first-order soundness
and completeness development.
Equations
Instances For
Recursors for bounded_preformula / bounded_formula #
(src/fol.lean lines 1984-2038)
Recursor for bounded_preformula at n+1 (i.e., where there is at least one free variable).
Equations
- NFChoice.Fol.BoundedPreformula.rec1 H0 H1 H2 H3 H4 H5 = fun ⦃n _l : ℕ⦄ (f : NFChoice.Fol.BoundedPreformula L (n + 1) _l) => NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 (n + 1) _l f
Instances For
Recursive extension of the positive-arity motive.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 0 l f = PUnit.unit
- NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 n_1.succ 0 NFChoice.Fol.bd_falsum = H0
- NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 n_1.succ 0 (NFChoice.Fol.bd_equal t₁ t₂) = H1 t₁ t₂
- NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 n_1.succ l (NFChoice.Fol.bd_rel R) = H2 R
- NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 n_1.succ l (f_1.bd_apprel t) = H3 f_1 t (NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 (n_1 + 1) (l + 1) f_1)
- NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 n_1.succ 0 f_1.bd_all = H5 f_1 (NFChoice.Fol.BoundedPreformula.rec1.key H0 H1 H2 H3 H4 H5 (n_1 + 2) 0 f_1)
Instances For
Recursor for bounded_formula at n+1 (fully applied).
Equations
- NFChoice.Fol.boundedFormula.rec1 hfalsum hequal hrel himp hall f = ⋯ ▸ NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall f NFChoice.DVec.nil
Instances For
Structural recursion accumulator.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall NFChoice.Fol.bd_falsum ts_1 = ⋯.mpr hfalsum
- NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall (NFChoice.Fol.bd_equal t₁ t₂) ts_1 = ⋯.mpr (hequal t₁ t₂)
- NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall (NFChoice.Fol.bd_rel R) ts = hrel R ts
- NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall (f'_1.bd_apprel t) ts = NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall f'_1 (NFChoice.DVec.cons t ts)
- NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall f'_1.bd_all ts_1 = ⋯.mpr (hall (NFChoice.Fol.boundedFormula.rec1.go hfalsum hequal hrel himp hall f'_1 NFChoice.DVec.nil))
Instances For
Recursor for bounded_formula at any n.
Equations
- NFChoice.Fol.boundedFormula.rec hfalsum hequal hrel himp hall f = ⋯ ▸ NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall f NFChoice.DVec.nil
Instances For
Structural recursion accumulator.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall NFChoice.Fol.bd_falsum ts_1 = ⋯.mpr hfalsum
- NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall (NFChoice.Fol.bd_equal t₁ t₂) ts_1 = ⋯.mpr (hequal t₁ t₂)
- NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall (NFChoice.Fol.bd_rel R) ts = hrel R ts
- NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall (f_1.bd_apprel t) ts = NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall f_1 (NFChoice.DVec.cons t ts)
- NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall f_1.bd_all ts_1 = ⋯.mpr (hall (NFChoice.Fol.boundedFormula.rec.go hfalsum hequal hrel himp hall f_1 NFChoice.DVec.nil))
Instances For
substmax_bounded_formula — substitute the max (last) #
variable
Substitute variable at position n in a formula with bound
n+1.
Equations
- NFChoice.Fol.substBoundedFormula NFChoice.Fol.bd_falsum x✝¹ x✝ = NFChoice.Fol.bd_falsum
- NFChoice.Fol.substBoundedFormula (NFChoice.Fol.bd_equal t₁ t₂) x✝ ⋯ = NFChoice.Fol.bd_equal (NFChoice.Fol.substBoundedTerm t₁ x✝) (NFChoice.Fol.substBoundedTerm t₂ x✝)
- NFChoice.Fol.substBoundedFormula (NFChoice.Fol.bd_rel R) x✝¹ x✝ = NFChoice.Fol.bd_rel R
- NFChoice.Fol.substBoundedFormula (f.bd_apprel t) x✝ ⋯ = (NFChoice.Fol.substBoundedFormula f x✝ ⋯).bd_apprel (NFChoice.Fol.substBoundedTerm t x✝)
- NFChoice.Fol.substBoundedFormula (f₁.bd_imp f₂) x✝ ⋯ = (NFChoice.Fol.substBoundedFormula f₁ x✝ ⋯).bd_imp (NFChoice.Fol.substBoundedFormula f₂ x✝ ⋯)
- NFChoice.Fol.substBoundedFormula f.bd_all x✝ ⋯ = (NFChoice.Fol.BoundedPreformula.castEq ⋯ (NFChoice.Fol.substBoundedFormula f x✝ ⋯)).bd_all
Instances For
Flypitch construction substmax_bounded_formula, retained by the first-order soundness and
completeness development.
Equations
Instances For
Flypitch construction subst0_bounded_formula, retained by the first-order soundness and
completeness development.
Equations
Instances For
realize_sentence lemmas #
lift_bounded_formula_at — lift bounded formulas #
Flypitch construction lift_bounded_formula_at, retained by the first-order soundness and
completeness development.
Equations
- (NFChoice.Fol.bd_falsum ↑ᶠᵇ' x✝¹ # x✝) = NFChoice.Fol.bd_falsum
- (NFChoice.Fol.bd_equal t₁ t₂ ↑ᶠᵇ' x✝¹ # x✝) = NFChoice.Fol.bd_equal (t₁ ↑ᵇ' x✝¹ # x✝) (t₂ ↑ᵇ' x✝¹ # x✝)
- (NFChoice.Fol.bd_rel R ↑ᶠᵇ' x✝¹ # x✝) = NFChoice.Fol.bd_rel R
- (f.bd_apprel t ↑ᶠᵇ' x✝¹ # x✝) = (f ↑ᶠᵇ' x✝¹ # x✝).bd_apprel (t ↑ᵇ' x✝¹ # x✝)
- (f₁.bd_imp f₂ ↑ᶠᵇ' x✝¹ # x✝) = (f₁ ↑ᶠᵇ' x✝¹ # x✝).bd_imp (f₂ ↑ᶠᵇ' x✝¹ # x✝)
- (f.bd_all ↑ᶠᵇ' x✝¹ # x✝) = (NFChoice.Fol.BoundedPreformula.castEq ⋯ (f ↑ᶠᵇ' x✝¹ # x✝ + 1)).bd_all
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction lift_bounded_formula, retained by the first-order soundness and
completeness development.
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_↑ᶠᵇ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_↑ᶠᵇ_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↑ᶠᵇ ") (Lean.ParserDescr.cat `term 101))
Instances For
Flypitch construction lift_bounded_formula1, retained by the first-order soundness and
completeness development.
Equations
Instances For
Sentence theories (src/fol.lean lines 2233-2759) #
A SentTheory is a set of sentences (Lean 3: Theory L = set (sentence L)).
Equations
Instances For
Project a sentence theory to a set of formulas
Equations
Instances For
Derivability for sentence theories: T.fst ⊢ f.fst
Equations
Instances For
Provability (nonempty-wrapped) for sentence theories
Equations
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊢ₛ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊢ₛ_» 51 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢ₛ ") (Lean.ParserDescr.cat `term 0))
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊢ₛ'_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊢ₛ'_» 51 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢ₛ' ") (Lean.ParserDescr.cat `term 0))
Instances For
All-realize-sentence — a structure models a sentence #
theory
A structure S realizes all sentences in T
Equations
- NFChoice.Fol.allRealizeSentence S T = ∀ ⦃f : NFChoice.Fol.sentence L⦄, f ∈ T → NFChoice.Fol.realizeSentence S f
Instances For
Notation for the corresponding first-order syntax or interpretation operation.
Equations
- NFChoice.Fol.«term_⊨ₜ_» = Lean.ParserDescr.trailingNode `NFChoice.Fol.«term_⊨ₜ_» 51 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊨ₜ ") (Lean.ParserDescr.cat `term 0))
Instances For
ssatisfied — semantic consequence for sentence theories #
T semantically entails ψ: every nonempty model of T satisfies ψ
Equations
- NFChoice.Fol.ssatisfied T f = ∀ ⦃S : NFChoice.Fol.Structure L⦄, Nonempty S.carrier → NFChoice.Fol.allRealizeSentence S T → NFChoice.Fol.realizeSentence S f
Instances For
Flypitch construction all_ssatisfied, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.allSsatisfied T T' = ∀ f ∈ T', NFChoice.Fol.ssatisfied T f
Instances For
Connection between ssatisfied and satisfied #
Model — bundled structure satisfying a sentence theory #
The underlying structure of a model
Instances For
The model satisfies its theory
A model realizes a sentence
Equations
- M.realize ψ = NFChoice.Fol.realizeSentence M.str ψ
Instances For
Soundness at sentence level #
Given a model M with M realizes ¬ψ, we have ¬ ssatisfied T ψ
Sentence-level is_consistent #
T is consistent if T.fst ⊬' ⊥ (at sentence/formula level)
Equations
Instances For
Theory of a structure #
The theory of a structure S: all sentences true in S
Equations
Instances For
eliminates_quantifiers #
Flypitch construction eliminates_quantifiers, retained by the first-order soundness and
completeness development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
L_empty, T_empty, T_equality #
The empty language with no functions and no relations
Equations
- NFChoice.Fol.LEmpty = { functions := fun (x : ℕ) => PEmpty.{?u.1 + 1}, relations := fun (x : ℕ) => PEmpty.{?u.1 + 1} }
Instances For
The empty theory over a language
Equations
Instances For
The equality theory: empty theory over the empty language
Instances For
Section bd_alls (src/fol.lean lines 2706-2757) #
Apply ∀' n times to an unbounded formula
Equations
- NFChoice.Fol.alls 0 x✝ = x✝
- NFChoice.Fol.alls n.succ x✝ = NFChoice.Fol.preformula.all (NFChoice.Fol.alls n x✝)
Instances For
Apply bd_all k times, reducing the bound index from n+k to n
Equations
- NFChoice.Fol.bdAlls' 0 x✝¹ x✝ = x✝
- NFChoice.Fol.bdAlls' k.succ x✝¹ x✝ = NFChoice.Fol.bdAlls' k x✝¹ (NFChoice.Fol.bd_all x✝)
Instances For
Close off a bounded formula by universally quantifying all n free variables
Equations
- NFChoice.Fol.bdAlls 0 f = f
- NFChoice.Fol.bdAlls n.succ f = NFChoice.Fol.bdAlls n (NFChoice.Fol.bd_all f)