Nuprl Lemma : mFOL_case_wf
∀[T:Type]. ∀[v:mFOL()]. ∀[atomic:name:Atom ⟶ vars:(ℤ List) ⟶ T]. ∀[connect:knd:Atom
                                                                             ⟶ left:mFOL()
                                                                             ⟶ right:mFOL()
                                                                             ⟶ T]. ∀[quant:isall:𝔹
                                                                                            ⟶ var:ℤ
                                                                                            ⟶ body:mFOL()
                                                                                            ⟶ T].
  (case(v)
   name(vars) => atomic[name;vars];
   left knd right => connect[knd;left;right];
   isall var.body => quant[isall;var;body] ∈ T)
Proof
Definitions occuring in Statement : 
mFOL_case: mFOL_case, 
mFOL: mFOL()
, 
list: T List
, 
bool: 𝔹
, 
uall: ∀[x:A]. B[x]
, 
so_apply: x[s1;s2;s3]
, 
so_apply: x[s1;s2]
, 
member: t ∈ T
, 
function: x:A ⟶ B[x]
, 
int: ℤ
, 
atom: Atom
, 
universe: Type
Definitions unfolded in proof : 
ext-eq: A ≡ B
, 
and: P ∧ Q
, 
member: t ∈ T
, 
subtype_rel: A ⊆r B
, 
uall: ∀[x:A]. B[x]
, 
all: ∀x:A. B[x]
, 
implies: P 
⇒ Q
, 
bool: 𝔹
, 
unit: Unit
, 
it: ⋅
, 
btrue: tt
, 
uiff: uiff(P;Q)
, 
uimplies: b supposing a
, 
sq_type: SQType(T)
, 
guard: {T}
, 
eq_atom: x =a y
, 
ifthenelse: if b then t else f fi 
, 
mFOatomic: name(vars)
, 
mFOconnect?: mFOconnect?(v)
, 
pi1: fst(t)
, 
assert: ↑b
, 
bfalse: ff
, 
mFOatomic?: mFOatomic?(v)
, 
mFOquant?: mFOquant?(v)
, 
not: ¬A
, 
true: True
, 
false: False
, 
exists: ∃x:A. B[x]
, 
or: P ∨ Q
, 
bnot: ¬bb
, 
mFOconnect: mFOconnect(knd;left;right)
, 
mFOquant: mFOquant(isall;var;body)
, 
mFOL_case: mFOL_case, 
so_apply: x[s1;s2]
, 
so_apply: x[s1;s2;s3]
Lemmas referenced : 
mFOL-ext, 
eq_atom_wf, 
eqtt_to_assert, 
assert_of_eq_atom, 
subtype_base_sq, 
atom_subtype_base, 
eqff_to_assert, 
bool_cases_sqequal, 
bool_wf, 
bool_subtype_base, 
assert-bnot, 
neg_assert_of_eq_atom, 
mFOatomic?_wf, 
mFOatomic-name_wf, 
mFOatomic-vars_wf, 
uiff_transitivity, 
equal-wf-T-base, 
assert_wf, 
bnot_wf, 
not_wf, 
assert_of_bnot, 
mFOconnect?_wf, 
mFOconnect-knd_wf, 
mFOconnect-left_wf, 
mFOconnect-right_wf, 
mFOquant-isall_wf, 
mFOquant-var_wf, 
mFOquant-body_wf, 
istype-int, 
istype-atom, 
list_wf, 
mFOL_wf, 
istype-universe
Rules used in proof : 
cut, 
introduction, 
extract_by_obid, 
promote_hyp, 
sqequalHypSubstitution, 
sqequalSubstitution, 
sqequalTransitivity, 
computationStep, 
sqequalReflexivity, 
productElimination, 
thin, 
hypothesis_subsumption, 
hypothesis, 
hypothesisEquality, 
applyEquality, 
sqequalRule, 
isectElimination, 
tokenEquality, 
inhabitedIsType, 
lambdaFormation_alt, 
unionElimination, 
equalityElimination, 
equalityTransitivity, 
equalitySymmetry, 
independent_isectElimination, 
instantiate, 
cumulativity, 
atomEquality, 
dependent_functionElimination, 
independent_functionElimination, 
because_Cache, 
natural_numberEquality, 
voidElimination, 
dependent_pairFormation_alt, 
equalityIstype, 
isect_memberFormation_alt, 
baseClosed, 
axiomEquality, 
functionIsType, 
universeIsType, 
isect_memberEquality_alt, 
isectIsTypeImplies, 
intEquality, 
universeEquality
Latex:
\mforall{}[T:Type].  \mforall{}[v:mFOL()].  \mforall{}[atomic:name:Atom  {}\mrightarrow{}  vars:(\mBbbZ{}  List)  {}\mrightarrow{}  T].  \mforall{}[connect:knd:Atom
                                                                                                                                                          {}\mrightarrow{}  left:mFOL()
                                                                                                                                                          {}\mrightarrow{}  right:mFOL()
                                                                                                                                                          {}\mrightarrow{}  T].
\mforall{}[quant:isall:\mBbbB{}  {}\mrightarrow{}  var:\mBbbZ{}  {}\mrightarrow{}  body:mFOL()  {}\mrightarrow{}  T].
    (case(v)
      name(vars)  =>  atomic[name;vars];
      left  knd  right  =>  connect[knd;left;right];
      isall  var.body  =>  quant[isall;var;body]  \mmember{}  T)
Date html generated:
2019_10_16-AM-11_38_59
Last ObjectModification:
2018_11_26-PM-03_09_48
Theory : minimal-first-order-logic
Home
Index