Nuprl Lemma : can-apply-compose-iff

∀[A,B,C:Type]. ∀[g:A ⟶ (B + Top)]. ∀[f:B ⟶ (C + Top)]. ∀[x:A].
  uiff(↑can-apply(f o g;x);(↑can-apply(g;x)) ∧ (↑can-apply(f;do-apply(g;x))))


Proof




Definitions occuring in Statement :  p-compose: f o g,  do-apply: do-apply(f;x),  can-apply: can-apply(f;x),  assert: ↑b,  uiff: uiff(P;Q),  uall: ∀[x:A]. B[x],  top: Top,  and: P ∧ Q,  function: x:A ⟶ B[x],  union: left + right,  universe: Type
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  uiff: uiff(P;Q),  and: P ∧ Q,  uimplies: b supposing a,  guard: {T},  subtype_rel: A ⊆r B,  top: Top,  implies: P ⇒ Q,  prop: ℙ,  can-apply: can-apply(f;x),  p-compose: f o g,  not: ¬A,  false: False,  all: ∀x:A. B[x],  bool: 𝔹,  unit: Unit,  it: ⋅,  btrue: tt,  ifthenelse: if b then t else f fi ,  bfalse: ff
Lemmas referenced :  can-apply-compose,  assert_witness,  can-apply_wf,  subtype_rel_union,  top_wf,  do-apply_wf,  assert_wf,  p-compose_wf,  isl_wf,  bool_wf,  equal-wf-T-base,  bnot_wf,  not_wf,  eqtt_to_assert,  uiff_transitivity,  eqff_to_assert,  assert_of_bnot,  equal_wf
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  introduction,  cut,  independent_pairFormation,  extract_by_obid,  sqequalHypSubstitution,  isectElimination,  thin,  because_Cache,  hypothesisEquality,  independent_isectElimination,  hypothesis,  productElimination,  sqequalRule,  independent_pairEquality,  cumulativity,  functionExtensionality,  applyEquality,  lambdaEquality,  isect_memberEquality,  voidElimination,  voidEquality,  independent_functionElimination,  productEquality,  equalityTransitivity,  equalitySymmetry,  functionEquality,  unionEquality,  universeEquality,  baseClosed,  lambdaFormation,  unionElimination,  equalityElimination,  dependent_functionElimination

Latex:
\mforall{}[A,B,C:Type].  \mforall{}[g:A  {}\mrightarrow{}  (B  +  Top)].  \mforall{}[f:B  {}\mrightarrow{}  (C  +  Top)].  \mforall{}[x:A].
    uiff(\muparrow{}can-apply(f  o  g;x);(\muparrow{}can-apply(g;x))  \mwedge{}  (\muparrow{}can-apply(f;do-apply(g;x))))



Date html generated: 2017_10_01-AM-09_13_39
Last ObjectModification: 2017_07_26-PM-04_48_59

Theory : general


Home Index