Nuprl Lemma : fun_thru_spread
∀[A:Type]. ∀[B:A ⟶ Type]. ∀[p:x:A × B[x]]. ∀[C,D:Type]. ∀[f:C ⟶ D]. ∀[b:x:A ⟶ B[x] ⟶ C].
  ((f let x,y = p in b[x;y]) = let x,y = p in f b[x;y] ∈ D)
Proof
Definitions occuring in Statement : 
uall: ∀[x:A]. B[x]
, 
so_apply: x[s1;s2]
, 
so_apply: x[s]
, 
apply: f a
, 
function: x:A ⟶ B[x]
, 
spread: spread def, 
product: x:A × B[x]
, 
universe: Type
, 
equal: s = t ∈ T
Definitions unfolded in proof : 
member: t ∈ T
, 
so_apply: x[s]
, 
uall: ∀[x:A]. B[x]
, 
so_apply: x[s1;s2]
Rules used in proof : 
Error :functionIsType, 
Error :universeIsType, 
hypothesisEquality, 
sqequalSubstitution, 
sqequalTransitivity, 
computationStep, 
sqequalReflexivity, 
applyEquality, 
functionEquality, 
because_Cache, 
Error :inhabitedIsType, 
universeEquality, 
Error :productIsType, 
productEquality, 
cumulativity, 
Error :isect_memberFormation_alt, 
introduction, 
cut, 
hypothesis, 
sqequalRule, 
sqequalHypSubstitution, 
isect_memberEquality, 
isectElimination, 
thin, 
axiomEquality, 
productElimination
Latex:
\mforall{}[A:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[p:x:A  \mtimes{}  B[x]].  \mforall{}[C,D:Type].  \mforall{}[f:C  {}\mrightarrow{}  D].  \mforall{}[b:x:A  {}\mrightarrow{}  B[x]  {}\mrightarrow{}  C].
    ((f  let  x,y  =  p  in  b[x;y])  =  let  x,y  =  p  in  f  b[x;y])
Date html generated:
2019_06_20-AM-11_17_58
Last ObjectModification:
2018_09_26-AM-10_25_09
Theory : core_2
Home
Index