Nuprl Lemma : equipollent-union-sum

∀[A,B:Type]. ∀[C:A ⟶ Type]. ∀[D:B ⟶ Type].
  a:A × C[a] + (b:B × D[b]) ~ d:A + B × case d of inl(a) => C[a] | inr(b) => D[b]


Proof




Definitions occuring in Statement :  equipollent: A ~ B,  uall: ∀[x:A]. B[x],  so_apply: x[s],  function: x:A ⟶ B[x],  product: x:A × B[x],  decide: case b of inl(x) => s[x] | inr(y) => t[y],  union: left + right,  universe: Type
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  equipollent: A ~ B,  exists: ∃x:A. B[x],  member: t ∈ T,  so_apply: x[s],  all: ∀x:A. B[x],  implies: P ⇒ Q,  prop: ℙ,  biject: Bij(A;B;f),  and: P ∧ Q,  inject: Inj(A;B;f),  surject: Surj(A;B;f),  so_lambda: λ2x.t[x],  pi1: fst(t),  pi2: snd(t),  outl: outl(x),  uimplies: b supposing a,  isl: isl(x),  assert: ↑b,  ifthenelse: if b then t else f fi ,  btrue: tt,  true: True,  sq_type: SQType(T),  guard: {T},  false: False,  outr: outr(x),  bnot: ¬bb,  bfalse: ff
Lemmas referenced :  equal_wf,  biject_wf,  pi2_wf,  pi1_wf,  and_wf,  outl_wf,  assert_wf,  isl_wf,  subtype_base_sq,  int_subtype_base,  outr_wf,  bnot_wf
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  dependent_pairFormation,  lambdaEquality,  cut,  hypothesisEquality,  equalityTransitivity,  hypothesis,  equalitySymmetry,  thin,  unionEquality,  productEquality,  applyEquality,  lambdaFormation,  unionElimination,  sqequalRule,  spreadEquality,  dependent_pairEquality,  inlEquality,  introduction,  extract_by_obid,  sqequalHypSubstitution,  isectElimination,  dependent_functionElimination,  independent_functionElimination,  inrEquality,  independent_pairFormation,  functionEquality,  cumulativity,  universeEquality,  productElimination,  applyLambdaEquality,  dependent_set_memberEquality,  setElimination,  rename,  independent_isectElimination,  promote_hyp,  hyp_replacement,  natural_numberEquality,  instantiate,  intEquality,  voidElimination,  because_Cache

Latex:
\mforall{}[A,B:Type].  \mforall{}[C:A  {}\mrightarrow{}  Type].  \mforall{}[D:B  {}\mrightarrow{}  Type].
    a:A  \mtimes{}  C[a]  +  (b:B  \mtimes{}  D[b])  \msim{}  d:A  +  B  \mtimes{}  case  d  of  inl(a)  =>  C[a]  |  inr(b)  =>  D[b]



Date html generated: 2019_06_20-PM-02_17_51
Last ObjectModification: 2018_08_21-PM-01_56_01

Theory : equipollence!!cardinality!


Home Index