Nuprl Lemma : mFOL-subst-abstract

The evidence that fmla[x/y] in Dom, S, a is the same as the evidence
that fmla is true in Dom, S, a[y := a x].⋅

∀[Dom:Type]. ∀[S:FOStruct(Dom)]. ∀[fmla:mFOL()]. ∀[x,y:ℤ]. ∀[a:FOAssignment(mFOL-freevars(fmla[x/y]),Dom)].
  (Dom,S,a |= mFOL-abstract(fmla[x/y]) = Dom,S,a[y := a x] |= mFOL-abstract(fmla) ∈ ℙ)


Proof




Definitions occuring in Statement :  mFOL-subst: fmla[nw/old],  mFOL-abstract: mFOL-abstract(fmla),  mFOL-freevars: mFOL-freevars(fmla),  mFOL: mFOL(),  FOSatWith: Dom,S,a |= fmla,  update-assignment: a[x := v],  FOStruct: FOStruct(Dom),  FOAssignment: FOAssignment(vs,Dom),  uall: ∀[x:A]. B[x],  prop: ℙ,  apply: f a,  int: ℤ,  universe: Type,  equal: s = t ∈ T
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  mFOL-subst: fmla[nw/old],  all: ∀x:A. B[x],  subtype_rel: A ⊆r B,  so_lambda: λ2x.t[x],  and: P ∧ Q,  prop: ℙ,  uimplies: b supposing a,  squash: ↓T,  true: True,  so_apply: x[s],  implies: P ⇒ Q,  uiff: uiff(P;Q),  FOAssignment: FOAssignment(vs,Dom),  update-assignment: a[x := v],  bool: 𝔹,  unit: Unit,  it: ⋅,  btrue: tt,  iff: P ⇐⇒ Q,  ifthenelse: if b then t else f fi ,  bfalse: ff,  exists: ∃x:A. B[x],  or: P ∨ Q,  sq_type: SQType(T),  guard: {T},  bnot: ¬bb,  assert: ↑b,  false: False,  rev_implies: P ⇐ Q,  cand: A c∧ B,  nequal: a ≠ b ∈ T ,  not: ¬A
Lemmas referenced :  mFOL-rename-bound-to-avoid_wf,  cons_wf,  nil_wf,  set_wf,  mFOL_wf,  equal_wf,  list_wf,  mFOL-freevars_wf,  length_wf,  mFOL-abstract_wf,  subtype_rel-equal,  AbstractFOFormula_wf,  l_disjoint_wf,  mFOL-boundvars_wf,  l_disjoint_singleton2,  FOAssignment_wf,  mFOL-rename_wf,  mFOL-subst_wf,  FOStruct_wf,  deq-member_wf,  int-deq_wf,  bool_wf,  eqtt_to_assert,  assert-deq-member,  eq_int_wf,  assert_of_eq_int,  l_member_wf,  eqff_to_assert,  bool_cases_sqequal,  subtype_base_sq,  bool_subtype_base,  assert-bnot,  neg_assert_of_eq_int,  mFOL-freevars-of-rename,  equal-wf-base,  int_subtype_base,  not_wf,  mFOL-abstract-rename,  squash_wf,  true_wf,  FOSatWith_wf,  list_subtype_base
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  introduction,  cut,  thin,  extract_by_obid,  sqequalHypSubstitution,  dependent_functionElimination,  hypothesisEquality,  isectElimination,  intEquality,  hypothesis,  instantiate,  applyEquality,  lambdaEquality,  cumulativity,  universeEquality,  sqequalRule,  productEquality,  applyLambdaEquality,  because_Cache,  independent_isectElimination,  imageElimination,  equalitySymmetry,  natural_numberEquality,  imageMemberEquality,  baseClosed,  lambdaFormation,  setElimination,  rename,  productElimination,  equalityTransitivity,  independent_functionElimination,  isect_memberEquality,  axiomEquality,  functionExtensionality,  unionElimination,  equalityElimination,  dependent_set_memberEquality,  dependent_pairFormation,  promote_hyp,  voidElimination,  inlFormation,  independent_pairFormation,  inrFormation,  setEquality,  hyp_replacement

Latex:
\mforall{}[Dom:Type].  \mforall{}[S:FOStruct(Dom)].  \mforall{}[fmla:mFOL()].  \mforall{}[x,y:\mBbbZ{}].
\mforall{}[a:FOAssignment(mFOL-freevars(fmla[x/y]),Dom)].
    (Dom,S,a  |=  mFOL-abstract(fmla[x/y])  =  Dom,S,a[y  :=  a  x]  |=  mFOL-abstract(fmla))



Date html generated: 2018_05_21-PM-10_24_27
Last ObjectModification: 2017_07_26-PM-06_38_32

Theory : minimal-first-order-logic


Home Index