Nuprl Lemma : mFOL-proveable-evidence

Soundness theorem for mFOL() with respect to uniform evidence semantics.

It says that from correct proof of mFOL sequent we may construct
uniform evidence mFOL-sequent-evidence for the sequent.
Uniform evidence for an abstract formula, fmla, is the 
intersection over all domains, Dom, and all structures, S, over Dom,
of evidence for ∀a:FOAssignment(vs,Dom). Dom,S,a |= fmla
where vs is the list of free variables of the formula.

NOTE:
If the formula is closed (i.e. the free vars is the nil list) then
an assignment a:FOAssignment([],Dom) exists even when Dom is an empty type.. 

Thus, (forall x. P(x)) => (exists x. P(x)) is not uniformly valid
because the premise is true for an empty domain while the conclusion is not.
By the soundness theorem, it is not provable.
By examining the effect of the mFOL rules 
 (see mFOLeffect)
one can see why this is so: 
both forall elimination and  exists introduction
can only be used with variable already free in the sequent,
so there is no way to use either rule in proof of this formula.⋅

[s:mFOL-sequent()]. (mFOL-proveable(s)  mFOL-sequent-evidence(s))


Proof




Definitions occuring in Statement :  mFOL-proveable: mFOL-proveable(s) mFOL-sequent-evidence: mFOL-sequent-evidence(s) mFOL-sequent: mFOL-sequent() uall: [x:A]. B[x] implies:  Q
Definitions unfolded in proof :  prop: member: t ∈ T sq_exists: x:A [B[x]] proveable: proveable(Sequent;Rule;effect;s) mFOL-proveable: mFOL-proveable(s) implies:  Q uall: [x:A]. B[x] all: x:A. B[x] so_lambda: λ2x.t[x] so_apply: x[s] uimplies: supposing a isr: isr(x) correct_proof: correct_proof(Sequent;effect;s;pf) proof-abort: proof-abort(s;r) pi1: fst(t) assert: b ifthenelse: if then else fi  bfalse: ff false: False btrue: tt and: P ∧ Q isl: isl(x) mFOLeffect: mFOLeffect(sr) subtype_rel: A ⊆B nat: make-proof-tree: make-proof-tree(s;r;L) outl: outl(x) int_seg: {i..j-} lelt: i ≤ j < k le: A ≤ B decidable: Dec(P) or: P ∨ Q not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] mFOL-sequent: mFOL-sequent() l_all: (∀x∈L.P[x]) fRuleandI: andI FOLRule_ind: FOLRule_ind mFO-dest-connective: mFO-dest-connective exposed-bfalse: exposed-bfalse bool: 𝔹 unit: Unit it: uiff: uiff(P;Q) band: p ∧b q less_than': less_than'(a;b) cons: [a b] guard: {T} cand: c∧ B iff: ⇐⇒ Q rev_implies:  Q subtract: m true: True select: L[n] less_than: a < b squash: T length: ||as|| list_ind: list_ind nil: [] sq_type: SQType(T) bnot: ¬bb fRuleimpI: impI fRuleallI: allI with var mFO-dest-quantifier: mFO-dest-quantifier mFOL-sequent-freevars: mFOL-sequent-freevars(s) fRuleexistsI: existsI with var fRuleorI: fRuleorI(left) fRulehyp: hyp fRuleandE: andE on hypnum ge: i ≥  fRuleorE: orE on hypnum fRuleimpE: impE on hypnum fRuleallE: allE on hypnum with var fRuleexistsE: existsE on hypnum with var fRulefalseE: falseE on hypnum mFOatomic: name(vars) mFOconnect?: mFOconnect?(v) mFOconnect-knd: mFOconnect-knd(v) pi2: snd(t) mFOconnect-left: mFOconnect-left(v) mFOconnect-right: mFOconnect-right(v) eq_atom: =a y mFOconnect: mFOconnect(knd;left;right) mFOquant: mFOquant(isall;var;body) mFOL-sequent-evidence: mFOL-sequent-evidence(s) mFO-uniform-evidence: mFO-uniform-evidence(vs;fmla) mFOL-freevars: mFOL-freevars(fmla) mFOL_ind: mFOL_ind mFOL-sequent-abstract: mFOL-sequent-abstract(s) FOSatWith: Dom,S,a |= fmla mFOL-abstract: mFOL-abstract(fmla) FOConnective: FOConnective(knd) let: let mFOL-hyps-meaning: mFOL-hyps-meaning(Dom;S;a;hyps) map: map(f;as) mFOquant?: mFOquant?(v) mFOquant-isall: mFOquant-isall(v) mFOquant-var: mFOquant-var(v) mFOquant-body: mFOquant-body(v) FOQuantifier: FOQuantifier(isall) l_contains: A ⊆ B update-assignment: a[x := v] nequal: a ≠ b ∈  FOAssignment: FOAssignment(vs,Dom) tuple-type: tuple-type(L) mFOL: mFOL() colength: colength(L) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] mFOL-subst: fmla[nw/old] l_disjoint: l_disjoint(T;l1;l2) l_member: (x ∈ l) filter: filter(P;l) reduce: reduce(f;k;as) l_exists: (∃x∈L. P[x]) istype: istype(T) sq_stable: SqStable(P) ext-eq: A ≡ B
Lemmas referenced :  mFOL-sequent_wf mFOL-proveable_wf proof-tree-induction-ext FOLRule_wf mFOLeffect_wf correct_proof_wf mFOL-sequent-evidence_wf proof-tree_wf assert_witness bfalse_wf btrue_wf istype-void istype-true proof-abort_wf istype-assert make-proof-tree_wf l_all_wf2 l_member_wf istype-int length_wf_nat set_subtype_base le_wf int_subtype_base outl_wf list_wf unit_wf2 int_seg_wf length_wf select_wf int_seg_properties decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_wf decidable__lt intformless_wf int_formula_prop_less_lemma intformeq_wf int_formula_prop_eq_lemma istype-le istype-less_than FOLRule-induction-ext equal_wf mFOconnect?_wf eqtt_to_assert eq_atom_wf mFOconnect-knd_wf assert_of_eq_atom istype-false list-cases length_of_nil_lemma cons_neq_nil mFOconnect-left_wf cons_wf mFOconnect-right_wf product_subtype_list length_of_cons_lemma 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 all_wf subtype_rel_universe1 equal-wf-base less_than_wf eqff_to_assert bool_cases_sqequal subtype_base_sq bool_wf bool_subtype_base assert-bnot neg_assert_of_eq_atom btrue_neq_bfalse fRuleandI_wf mFOL_wf fRuleimpI_wf deq-member_wf int-deq_wf mFOL-sequent-freevars_wf assert-deq-member mFOquant?_wf eq_bool_wf mFOquant-isall_wf assert_of_eq_bool mFOL-subst_wf mFOquant-body_wf mFOquant-var_wf iff_weakening_uiff assert_wf equal-wf-T-base fRuleallI_wf fRuleexistsI_wf fRuleorI_wf deq-mFO_wf fRulehyp_wf lt_int_wf assert_of_lt_int nat_properties fRuleandE_wf istype-nat fRuleorE_wf fRuleimpE_wf fRuleallE_wf fRuleexistsE_wf fRulefalseE_wf mFOL-induction atom_subtype_base nil_wf mFOconnect_wf istype-atom squash_wf true_wf istype-universe subtype_rel_self iff_weakening_equal mFOL-sequent-evidence_and subtype_rel_FOAssignment mFOL-sequent-freevars-contained mFOL-sequent-freevars-contains-concl mFOL-freevars_wf val-union-l-union int-valueall-type union-contains2 cons_member union-contains l_contains_wf mFOL-sequent-freevars-subset-2 FOAssignment_wf FOStruct_wf mFOL-hyps-meaning-cons null_nil_lemma FOSatWith_wf mFOL-abstract_wf subtype_rel_function tuple-type_wf null_cons_lemma mFOL-hyps-meaning_wf not_wf mFOquant_wf mFOatomic_wf not-member-mFOL-sequent-freevars mFOL-subst-abstract update-assignment_wf l_all_iff filter_wf5 bnot_wf eq_int_wf member-mFOL-sequent-freevars member_filter iff_transitivity assert_of_bnot assert_of_eq_int l_exists_wf freevars-mFOL-subst neg_assert_of_eq_int AbstractFOFormula_wf decidable__equal_int ge_wf colength-cons-not-zero colength_wf_list subtract-1-ge-0 spread_cons_lemma subtract_wf itermSubtract_wf itermAdd_wf int_term_value_subtract_lemma int_term_value_add_lemma l_exists_cons l_all_cons ifthenelse_wf null_wf3 subtype_rel_list top_wf mFOL-sequent-freevars-subset-1 mFOL-rename-bound-to-avoid_wf mFOL-freevars-of-rename list_subtype_base mFOL-boundvars_wf mFOL-rename_wf mFOL-sequent-freevars-subset-4 mFOL-sequent-evidence_transitivity1 mFOL-sequent-evidence-trivial mFOL-sequent-evidence_transitivity2 l_contains_transitivity select_member better-mFOL-sequent-evidence_transitivity1 l_contains_weakening select-cons le_int_wf add-subtract-cancel add-swap bool_cases assert_of_le_int mFOL-freevars-connect-right-contained mFOL-freevars-connect-left-contained select-tuple_wf length-map select-map stuck-spread istype-base mFOL-freevars-connect-contained decidable__l_member mFOL-subst-trivial assert_elim assert_of_null sq_stable__correct_proof proof-tree-ext
Rules used in proof :  hypothesis hypothesisEquality isectElimination extract_by_obid introduction universeIsType cut rename thin setElimination sqequalHypSubstitution lambdaFormation_alt isect_memberFormation_alt sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution instantiate cumulativity dependent_functionElimination lambdaEquality_alt productIsType sqequalRule functionEquality inhabitedIsType independent_functionElimination independent_pairEquality unionElimination equalityIstype equalityTransitivity equalitySymmetry voidElimination productElimination because_Cache independent_isectElimination axiomEquality setIsType applyEquality intEquality natural_numberEquality sqequalBase hyp_replacement applyLambdaEquality functionIsType approximateComputation dependent_pairFormation_alt int_eqEquality Error :memTop,  independent_pairFormation dependent_set_memberEquality_alt unionEquality inlEquality_alt equalityElimination tokenEquality promote_hyp hypothesis_subsumption addEquality minusEquality closedConclusion imageElimination baseClosed imageMemberEquality unionIsType atomEquality universeEquality inlFormation_alt functionExtensionality setEquality intWeakElimination functionIsTypeImplies voidEquality baseApply inrFormation_alt productEquality

Latex:
\mforall{}[s:mFOL-sequent()].  (mFOL-proveable(s)  {}\mRightarrow{}  mFOL-sequent-evidence(s))



Date html generated: 2020_05_20-AM-09_10_57
Last ObjectModification: 2020_01_29-PM-02_03_12

Theory : minimal-first-order-logic


Home Index