Nuprl Lemma : FOL-bound-rename

This lemma shows that there is formula
with the same abstract meaning whose bound variables are disjoint from
given list of variables.⋅

fmla:mFOL(). ∀L:ℤ List.
  (∃fmla':mFOL() [((mFOL-freevars(fmla') mFOL-freevars(fmla) ∈ (ℤ List))
                 ∧ (FOL-abstract(fmla') FOL-abstract(fmla) ∈ AbstractFOFormula+(mFOL-freevars(fmla)))
                 ∧ l_disjoint(ℤ;L;mFOL-boundvars(fmla')))])


Proof




Definitions occuring in Statement :  FOL-abstract: FOL-abstract(fmla) mFOL-boundvars: mFOL-boundvars(fmla) mFOL-freevars: mFOL-freevars(fmla) mFOL: mFOL() AbstractFOFormula+: AbstractFOFormula+(vs) l_disjoint: l_disjoint(T;l1;l2) list: List all: x:A. B[x] sq_exists: x:A [B[x]] and: P ∧ Q int: equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] so_lambda: λ2x.t[x] member: t ∈ T prop: and: P ∧ Q subtype_rel: A ⊆B uimplies: supposing a so_apply: x[s] implies:  Q all: x:A. B[x] sq_exists: x:A [B[x]] guard: {T} cand: c∧ B mFOL-boundvars: mFOL-boundvars(fmla) mFOatomic: name(vars) mFOL_ind: mFOL_ind squash: T true: True mFOL-freevars: mFOL-freevars(fmla) mFOconnect: mFOconnect(knd;left;right) iff: ⇐⇒ Q rev_implies:  Q FOL-abstract: FOL-abstract(fmla) l_disjoint: l_disjoint(T;l1;l2) not: ¬A or: P ∨ Q false: False decidable: Dec(P) exists: x:A. B[x] ifthenelse: if then else fi  btrue: tt cons: [a b] top: Top bfalse: ff satisfiable_int_formula: satisfiable_int_formula(fmla) le: A ≤ B ge: i ≥  bool: 𝔹 unit: Unit it: uiff: uiff(P;Q) sq_type: SQType(T) bnot: ¬bb assert: b nat: subtract: m less_than': less_than'(a;b) l_member: (x ∈ l) l_all: (∀x∈L.P[x]) int_seg: {i..j-} lelt: i ≤ j < k mFOquant: mFOquant(isall;var;body) FOQuantifier+: FOQuantifier+(isall) AbstractFOFormula+: AbstractFOFormula+(vs) FOStruct+: FOStruct+{i:l}(Dom) FOStruct: FOStruct(Dom) l_contains: A ⊆ B FOAssignment: FOAssignment(vs,Dom) update-assignment: a[x := v] FOAssigment-rename: FOAssigment-rename(a;fmla;x;y) nequal: a ≠ b ∈ 
Lemmas referenced :  mFOL-induction all_wf list_wf sq_exists_wf mFOL_wf equal-wf-base mFOL-freevars_wf list_subtype_base int_subtype_base length_wf equal_wf AbstractFOFormula+_wf FOL-abstract_wf l_disjoint_wf mFOL-boundvars_wf istype-atom istype-int bool_wf mFOatomic_wf l_disjoint_nil2 atom_subtype_base subtype_rel-equal mFOconnect_wf squash_wf true_wf istype-universe val-union_wf valueall-type_wf deq_wf int-deq_wf int-valueall-type subtype_rel_self iff_weakening_equal FOConnective+_wf equal_functionality_wrt_subtype_rel2 member-union l_member_wf l-union_wf decidable__l_member decidable__equal_int append_wf list-cases null_nil_lemma product_subtype_list null_cons_lemma istype-void imax-list_wf cons_wf int_formula_prop_wf int_formula_prop_le_lemma int_term_value_var_lemma int_term_value_add_lemma int_term_value_constant_lemma int_formula_prop_less_lemma int_formula_prop_not_lemma int_formula_prop_and_lemma intformle_wf itermVar_wf itermAdd_wf itermConstant_wf intformless_wf intformnot_wf intformand_wf full-omega-unsat decidable__lt non_neg_length length_of_cons_lemma null_wf3 subtype_rel_list top_wf eqtt_to_assert assert_of_null btrue_wf member-implies-null-eq-bfalse btrue_neq_bfalse eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot iff_weakening_uiff assert_wf length_of_nil_lemma nil_wf length_wf_nat istype-false not-lt-2 condition-implies-le minus-add minus-one-mul zero-add minus-one-mul-top add-commutes add_functionality_wrt_le add-associates add-zero le-add-cancel imax-list-lb decidable__le nat_properties istype-le istype-less_than intformeq_wf int_formula_prop_eq_lemma member_append mFOquant_wf mFOL-rename_wf filter-mFOL-freevars-of-rename b-union_wf FOAssignment_wf FOStruct+_wf bfalse_wf FOSatWith+_wf update-assignment_wf subtype_rel_FOAssignment filter_wf5 bnot_wf eq_int_wf eq_int_eq_true assert_elim iff_transitivity not_wf assert_of_bnot assert_of_eq_int istype-assert member_filter mFOL-freevars-of-rename l_all_iff neg_assert_of_eq_int FOL-abstract-rename filter-contains deq-member_wf assert-deq-member insert_wf mFOL-boundvars-of-rename member-insert FOQuantifier+_wf
Rules used in proof :  cut instantiate introduction extract_by_obid hypothesis sqequalHypSubstitution sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isectElimination thin sqequalRule lambdaEquality_alt closedConclusion intEquality productEquality cumulativity hypothesisEquality applyEquality independent_isectElimination applyLambdaEquality equalityTransitivity equalitySymmetry because_Cache inhabitedIsType universeIsType independent_functionElimination lambdaFormation_alt functionIsType setIsType productIsType equalityIstype sqequalBase dependent_set_memberFormation_alt independent_pairFormation baseApply baseClosed imageElimination natural_numberEquality imageMemberEquality dependent_functionElimination setElimination rename productElimination universeEquality functionEquality unionElimination voidElimination dependent_pairFormation_alt promote_hyp hypothesis_subsumption isect_memberEquality_alt addEquality int_eqEquality lambdaEquality dependent_pairFormation approximateComputation voidEquality isect_memberEquality equalityElimination dependent_set_memberEquality_alt minusEquality unionIsType inlFormation_alt inrFormation_alt tokenEquality hyp_replacement functionExtensionality setEquality

Latex:
\mforall{}fmla:mFOL().  \mforall{}L:\mBbbZ{}  List.
    (\mexists{}fmla':mFOL()  [((mFOL-freevars(fmla')  =  mFOL-freevars(fmla))
                                  \mwedge{}  (FOL-abstract(fmla')  =  FOL-abstract(fmla))
                                  \mwedge{}  l\_disjoint(\mBbbZ{};L;mFOL-boundvars(fmla')))])



Date html generated: 2019_10_16-AM-11_40_42
Last ObjectModification: 2018_12_08-PM-03_43_07

Theory : minimal-first-order-logic


Home Index