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 ⊆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: supposing a subtype_rel: A ⊆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: supposing a subtype_rel: A ⊆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:  Q strong-subtype: strong-subtype(A;B) cand: 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 then else 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