Nuprl Lemma : fpf-cap-subtype_functionality_wrt_sub2
∀[A1,A2,A3:Type]. ∀[d,d':EqDecider(A3)]. ∀[d2:EqDecider(A2)]. ∀[f:a:A1 fp-> Type]. ∀[g:a:A2 fp-> Type]. ∀[x:A3].
({g(x)?Top ⊆r f(x)?Top supposing f ⊆ g}) supposing (strong-subtype(A2;A3) and strong-subtype(A1;A2))
Proof
Definitions occuring in Statement :
fpf-sub: f ⊆ g
,
fpf-cap: f(x)?z
,
fpf: a:A fp-> B[a]
,
deq: EqDecider(T)
,
strong-subtype: strong-subtype(A;B)
,
uimplies: b supposing a
,
subtype_rel: A ⊆r B
,
uall: ∀[x:A]. B[x]
,
top: Top
,
guard: {T}
,
universe: Type
Definitions unfolded in proof :
guard: {T}
,
uall: ∀[x:A]. B[x]
,
member: t ∈ T
,
uimplies: b supposing a
,
subtype_rel: A ⊆r B
,
prop: ℙ
,
so_lambda: λ2x.t[x]
,
so_apply: x[s]
,
all: ∀x:A. B[x]
,
top: Top
,
decidable: Dec(P)
,
or: P ∨ Q
,
fpf-sub: f ⊆ g
,
implies: P
⇒ Q
,
strong-subtype: strong-subtype(A;B)
,
cand: A c∧ B
,
fpf-ap: f(x)
,
pi2: snd(t)
,
fpf-cap: f(x)?z
,
bool: 𝔹
,
unit: Unit
,
it: ⋅
,
btrue: tt
,
uiff: uiff(P;Q)
,
and: P ∧ Q
,
ifthenelse: if b then t else f fi
,
bfalse: ff
,
not: ¬A
,
false: False
Lemmas referenced :
strong-subtype_transitivity,
fpf-sub_wf,
subtype-fpf3,
subtype_rel_self,
strong-subtype_wf,
fpf_wf,
deq_wf,
decidable__assert,
fpf-dom_wf,
top_wf,
fpf-cap_wf,
subtype_rel_wf,
fpf-cap_functionality_wrt_sub,
assert_wf,
fpf-dom-type2,
subtype-fpf2,
fpf-dom_functionality2,
strong-subtype-deq-subtype,
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,
sqequalRule,
sqequalReflexivity,
sqequalTransitivity,
computationStep,
isect_memberFormation,
introduction,
cut,
extract_by_obid,
sqequalHypSubstitution,
isectElimination,
thin,
hypothesisEquality,
because_Cache,
independent_isectElimination,
hypothesis,
axiomEquality,
instantiate,
cumulativity,
lambdaEquality,
universeEquality,
applyEquality,
lambdaFormation,
isect_memberEquality,
equalityTransitivity,
equalitySymmetry,
dependent_functionElimination,
voidElimination,
voidEquality,
unionElimination,
hyp_replacement,
applyLambdaEquality,
productElimination,
independent_functionElimination,
independent_pairFormation,
baseClosed,
equalityElimination
Latex:
\mforall{}[A1,A2,A3:Type]. \mforall{}[d,d':EqDecider(A3)]. \mforall{}[d2:EqDecider(A2)]. \mforall{}[f:a:A1 fp-> Type].
\mforall{}[g:a:A2 fp-> Type]. \mforall{}[x:A3].
(\{g(x)?Top \msubseteq{}r f(x)?Top supposing f \msubseteq{} g\}) supposing
(strong-subtype(A2;A3) and
strong-subtype(A1;A2))
Date html generated:
2018_05_21-PM-09_19_47
Last ObjectModification:
2018_02_09-AM-10_17_43
Theory : finite!partial!functions
Home
Index