Nuprl Lemma : fpf-union-compatible-property

∀[T,V:Type].
  ∀eq:EqDecider(T)
    ∀[X:T ⟶ Type]
      ∀R:(V List) ⟶ V ⟶ 𝔹
        (∀A,B,C:t:T fp-> X[t] List.
           (fpf-union-compatible(T;V;t.X[t];eq;R;A;B)
           ⇒ fpf-union-compatible(T;V;t.X[t];eq;R;C;A)
           ⇒ fpf-union-compatible(T;V;t.X[t];eq;R;C;B)
           ⇒ fpf-union-compatible(T;V;t.X[t];eq;R;C;fpf-union-join(eq;R;A;B)))) supposing 
           ((∀L1,L2:V List. ∀x:V.  (↑(R (L1 @ L2) x)) supposing ((↑(R L2 x)) and (↑(R L1 x)))) and 
           (∀L1,L2:V List. ∀x:V.  (L1 ⊆ L2 ⇒ ↑(R L1 x) supposing ↑(R L2 x)))) 
      supposing ∀t:T. (X[t] ⊆r V)


Proof




Definitions occuring in Statement :  fpf-union-join: fpf-union-join(eq;R;f;g),  fpf-union-compatible: fpf-union-compatible(A;C;x.B[x];eq;R;f;g),  fpf: a:A fp-> B[a],  l_contains: A ⊆ B,  append: as @ bs,  list: T List,  deq: EqDecider(T),  assert: ↑b,  bool: 𝔹,  uimplies: b supposing a,  subtype_rel: A ⊆r B,  uall: ∀[x:A]. B[x],  so_apply: x[s],  all: ∀x:A. B[x],  implies: P ⇒ Q,  apply: f a,  function: x:A ⟶ B[x],  universe: Type
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  all: ∀x:A. B[x],  uimplies: b supposing a,  member: t ∈ T,  subtype_rel: A ⊆r B,  implies: P ⇒ Q,  fpf-union-compatible: fpf-union-compatible(A;C;x.B[x];eq;R;f;g),  so_lambda: λ2x.t[x],  so_apply: x[s],  top: Top,  iff: P ⇐⇒ Q,  and: P ∧ Q,  or: P ∨ Q,  istype: istype(T),  prop: ℙ,  not: ¬A,  false: False,  fpf-union: fpf-union(f;g;eq;R;x),  fpf-cap: f(x)?z,  bool: 𝔹,  unit: Unit,  it: ⋅,  btrue: tt,  uiff: uiff(P;Q),  band: p ∧b q,  ifthenelse: if b then t else f fi ,  bfalse: ff,  exists: ∃x:A. B[x],  sq_type: SQType(T),  guard: {T},  bnot: ¬bb,  assert: ↑b,  cand: A c∧ B,  respects-equality: respects-equality(S;T),  rev_implies: P ⇐ Q,  true: True,  decidable: Dec(P),  l_contains: A ⊆ B
Lemmas referenced :  assert_witness,  append_wf,  fpf-union-join-dom,  subtype-fpf2,  list_wf,  top_wf,  istype-void,  l_member_wf,  fpf-ap_wf,  fpf-union-join_wf,  subtype_rel_dep_function,  bool_wf,  subtype_rel_list,  istype-assert,  fpf-dom_wf,  fpf-union-compatible_wf,  fpf_wf,  l_contains_wf,  subtype_rel_wf,  deq_wf,  istype-universe,  eqtt_to_assert,  eqff_to_assert,  bool_cases_sqequal,  subtype_base_sq,  bool_subtype_base,  assert-bnot,  fpf-union-join-ap,  member_append,  filter_wf5,  member_filter,  subtype-respects-equality,  subtype_rel_transitivity,  assert_elim,  decidable__assert,  l_all_iff
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation_alt,  lambdaFormation_alt,  cut,  introduction,  sqequalRule,  sqequalHypSubstitution,  lambdaEquality_alt,  dependent_functionElimination,  thin,  hypothesisEquality,  axiomEquality,  hypothesis,  functionIsTypeImplies,  inhabitedIsType,  rename,  isect_memberEquality_alt,  isectElimination,  extract_by_obid,  applyEquality,  independent_functionElimination,  isectIsTypeImplies,  independent_isectElimination,  voidElimination,  universeIsType,  because_Cache,  productElimination,  unionIsType,  productIsType,  functionEquality,  functionIsType,  isectIsType,  instantiate,  universeEquality,  unionElimination,  equalityElimination,  equalityTransitivity,  equalitySymmetry,  dependent_pairFormation_alt,  equalityIstype,  promote_hyp,  cumulativity,  setEquality,  setIsType,  setElimination,  inlFormation_alt,  inrFormation_alt,  independent_pairFormation,  dependent_set_memberEquality_alt,  applyLambdaEquality,  natural_numberEquality

Latex:
\mforall{}[T,V:Type].
    \mforall{}eq:EqDecider(T)
        \mforall{}[X:T  {}\mrightarrow{}  Type]
            \mforall{}R:(V  List)  {}\mrightarrow{}  V  {}\mrightarrow{}  \mBbbB{}
                (\mforall{}A,B,C:t:T  fp->  X[t]  List.
                      (fpf-union-compatible(T;V;t.X[t];eq;R;A;B)
                      {}\mRightarrow{}  fpf-union-compatible(T;V;t.X[t];eq;R;C;A)
                      {}\mRightarrow{}  fpf-union-compatible(T;V;t.X[t];eq;R;C;B)
                      {}\mRightarrow{}  fpf-union-compatible(T;V;t.X[t];eq;R;C;fpf-union-join(eq;R;A;B))))  supposing 
                      ((\mforall{}L1,L2:V  List.  \mforall{}x:V.    (\muparrow{}(R  (L1  @  L2)  x))  supposing  ((\muparrow{}(R  L2  x))  and  (\muparrow{}(R  L1  x))))  and 
                      (\mforall{}L1,L2:V  List.  \mforall{}x:V.    (L1  \msubseteq{}  L2  {}\mRightarrow{}  \muparrow{}(R  L1  x)  supposing  \muparrow{}(R  L2  x)))) 
            supposing  \mforall{}t:T.  (X[t]  \msubseteq{}r  V)



Date html generated: 2019_10_16-AM-11_25_47
Last ObjectModification: 2019_06_25-PM-01_23_02

Theory : finite!partial!functions


Home Index