NF weak partition development: NominalRenamingLemmas.
Functoriality of nominal lowering under a de-Bruijn variable renaming.
This is the structural bridge needed by binder-permutation rules such as
Metamath ax-7: instead of proving a fresh equality for every generated
application, the certificate compiler can instantiate one kernel-checked
renaming theorem.
Extend a renaming under one de-Bruijn binder.
Equations
- NFChoice.DirectNominalPrf.Nominal.underBinder sigma 0 = 0
- NFChoice.DirectNominalPrf.Nominal.underBinder sigma n.succ = sigma n + 1
Instances For
Apply a de-Bruijn renaming to a (possibly partially applied) term.
Equations
- NFChoice.DirectNominalPrf.Nominal.renameTerm sigma &n = &(sigma n)
- NFChoice.DirectNominalPrf.Nominal.renameTerm sigma (NFChoice.Fol.preterm.func f) = NFChoice.Fol.preterm.func f
- NFChoice.DirectNominalPrf.Nominal.renameTerm sigma (t.app s) = (NFChoice.DirectNominalPrf.Nominal.renameTerm sigma t).app (NFChoice.DirectNominalPrf.Nominal.renameTerm sigma s)
Instances For
def
NFChoice.DirectNominalPrf.Nominal.renameFormula
(sigma : ℕ → ℕ)
{l : ℕ}
:
Fol.preformula l → Fol.preformula l
Apply a de-Bruijn renaming to a (possibly partially applied) formula.
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.DirectNominalPrf.Nominal.renameFormula sigma ⊥' = ⊥'
- NFChoice.DirectNominalPrf.Nominal.renameFormula sigma (NFChoice.Fol.preformula.rel r) = NFChoice.Fol.preformula.rel r
- NFChoice.DirectNominalPrf.Nominal.renameFormula sigma (p.apprel t) = (NFChoice.DirectNominalPrf.Nominal.renameFormula sigma p).apprel (NFChoice.DirectNominalPrf.Nominal.renameTerm sigma t)
- NFChoice.DirectNominalPrf.Nominal.renameFormula sigma (p.imp q) = (NFChoice.DirectNominalPrf.Nominal.renameFormula sigma p).imp (NFChoice.DirectNominalPrf.Nominal.renameFormula sigma q)
- NFChoice.DirectNominalPrf.Nominal.renameFormula sigma p.all = (NFChoice.DirectNominalPrf.Nominal.renameFormula (NFChoice.DirectNominalPrf.Nominal.underBinder sigma) p).all
Instances For
Proof-translation construction identified upstream as renameRho.
Equations
- NFChoice.DirectNominalPrf.Nominal.renameRho sigma rho x = sigma (rho x)
Instances For
@[simp]
@[simp]
theorem
NFChoice.DirectNominalPrf.Nominal.renameRho_update
(sigma : ℕ → ℕ)
(rho : SemanticCore.Var → ℕ)
(x : SemanticCore.Var)
(candidate : ℕ)
:
theorem
NFChoice.DirectNominalPrf.Nominal.renameRho_bind
(sigma : ℕ → ℕ)
(rho : SemanticCore.Var → ℕ)
(x : SemanticCore.Var)
:
theorem
NFChoice.DirectNominalPrf.Nominal.renameRho_lift
(sigma : ℕ → ℕ)
(rho : SemanticCore.Var → ℕ)
:
theorem
NFChoice.DirectNominalPrf.Nominal.lowerClassPred_rename
(sigma : ℕ → ℕ)
(rho : SemanticCore.Var → ℕ)
(candidate : ℕ)
(A : SemanticCore.Class)
:
lowerClassPred (renameRho sigma rho) (sigma candidate) A = renameFormula sigma (lowerClassPred rho candidate A)
theorem
NFChoice.DirectNominalPrf.Nominal.lowerWff_rename
(sigma : ℕ → ℕ)
(rho : SemanticCore.Var → ℕ)
(p : SemanticCore.Wff)
: