Nuprl Lemma : equal-by-name-cases

a,x,y:Name.
  ∀T:Type. ∀z:T. ∀P,Q:ℙ. ∀t1:⋂p:P. T. ∀t2:⋂q:Q. T.
    (((a x ∈ Name) ∧ P ∧ (z t1 ∈ T)) ∨ ((a y ∈ Name) ∧ Q ∧ (z t2 ∈ T))
    ⇐⇒ (((a x ∈ Name) ∧ P) ∨ ((a y ∈ Name) ∧ Q)) ∧ (z if name_eq(a;x) then t1 else t2 fi  ∈ T)) 
  supposing ¬(x y ∈ Name)


Proof




Definitions occuring in Statement :  name_eq: name_eq(x;y) name: Name ifthenelse: if then else fi  uimplies: supposing a prop: all: x:A. B[x] iff: ⇐⇒ Q not: ¬A or: P ∨ Q and: P ∧ Q isect: x:A. B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  all: x:A. B[x] uimplies: supposing a member: t ∈ T not: ¬A implies:  Q false: False uall: [x:A]. B[x] prop: bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) and: P ∧ Q ifthenelse: if then else fi  iff: ⇐⇒ Q or: P ∨ Q cand: c∧ B guard: {T} rev_implies:  Q bfalse: ff exists: x:A. B[x] sq_type: SQType(T) bnot: ¬bb assert: b
Lemmas referenced :  equal_wf name_wf name_eq_wf bool_wf eqtt_to_assert assert-name_eq eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot not_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity lambdaFormation isect_memberFormation cut introduction sqequalRule sqequalHypSubstitution lambdaEquality dependent_functionElimination thin hypothesisEquality voidElimination extract_by_obid isectElimination hypothesis rename unionElimination equalityElimination equalityTransitivity equalitySymmetry productElimination independent_isectElimination independent_pairFormation inlFormation productEquality independent_functionElimination inrFormation because_Cache dependent_pairFormation promote_hyp instantiate cumulativity isectEquality universeEquality

Latex:
\mforall{}a,x,y:Name.
    \mforall{}T:Type.  \mforall{}z:T.  \mforall{}P,Q:\mBbbP{}.  \mforall{}t1:\mcap{}p:P.  T.  \mforall{}t2:\mcap{}q:Q.  T.
        (((a  =  x)  \mwedge{}  P  \mwedge{}  (z  =  t1))  \mvee{}  ((a  =  y)  \mwedge{}  Q  \mwedge{}  (z  =  t2))
        \mLeftarrow{}{}\mRightarrow{}  (((a  =  x)  \mwedge{}  P)  \mvee{}  ((a  =  y)  \mwedge{}  Q))  \mwedge{}  (z  =  if  name\_eq(a;x)  then  t1  else  t2  fi  )) 
    supposing  \mneg{}(x  =  y)



Date html generated: 2017_04_17-AM-09_17_37
Last ObjectModification: 2017_02_27-PM-05_21_54

Theory : decidable!equality


Home Index