Nuprl Lemma : fpf-decompose

[A:Type]
  ∀eq:EqDecider(A)
    ∀[B:A ⟶ Type]
      ∀f:a:A fp-> B[a]
        ∃g:a:A fp-> B[a]
         ∃a:A
          ∃b:B[a]
           ((f ⊆ g ⊕ b ∧ g ⊕ b ⊆ f)
           ∧ (∀a':A. ¬(a' a ∈ A) supposing ↑a' ∈ dom(g))
           ∧ ||fpf-domain(g)|| < ||fpf-domain(f)||) 
        supposing 0 < ||fpf-domain(f)||


Proof




Definitions occuring in Statement :  fpf-single: v fpf-join: f ⊕ g fpf-sub: f ⊆ g fpf-domain: fpf-domain(f) fpf-dom: x ∈ dom(f) fpf: a:A fp-> B[a] length: ||as|| deq: EqDecider(T) assert: b less_than: a < b uimplies: supposing a uall: [x:A]. B[x] so_apply: x[s] all: x:A. B[x] exists: x:A. B[x] not: ¬A and: P ∧ Q function: x:A ⟶ B[x] natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  rev_implies:  Q uiff: uiff(P;Q) iff: ⇐⇒ Q cons: [a b] less_than': less_than'(a;b) bfalse: ff ifthenelse: if then else fi  assert: b fpf-dom: x ∈ dom(f) eqof: eqof(d) pi1: fst(t) fpf-domain: fpf-domain(f) fpf: a:A fp-> B[a] le: A ≤ B prop: false: False exists: x:A. B[x] satisfiable_int_formula: satisfiable_int_formula(fmla) implies:  Q not: ¬A and: P ∧ Q squash: T less_than: a < b or: P ∨ Q decidable: Dec(P) ge: i ≥  top: Top so_apply: x[s] so_lambda: λ2x.t[x] subtype_rel: A ⊆B member: t ∈ T uimplies: supposing a all: x:A. B[x] uall: [x:A]. B[x] fpf-compatible: || g rev_uimplies: rev_uimplies(P;Q) cand: c∧ B fpf-sub: f ⊆ g btrue: tt sq_type: SQType(T) guard: {T} true: True fpf-cap: f(x)?z fpf-join: f ⊕ g
Lemmas referenced :  deq_wf fpf_wf exists_wf not_wf fpf-dom_wf all_wf fpf-single_wf fpf-join_wf fpf-sub_wf fpf-ap_wf assert-deq-member safe-assert-deq assert_of_bor iff_weakening_uiff member_wf or_wf deq-member_wf bor_wf iff_transitivity l_member_wf deq_member_cons_lemma length_of_cons_lemma reduce_hd_cons_lemma product_subtype_list deq_member_nil_lemma length_of_nil_lemma list-cases equal_wf less_than_wf less_than'_wf list_wf decidable__assert int_formula_prop_wf int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_le_lemma int_formula_prop_not_lemma int_formula_prop_and_lemma intformless_wf itermVar_wf itermConstant_wf intformle_wf intformnot_wf intformand_wf full-omega-unsat decidable__le hd_wf eqof_wf bnot_wf assert_wf fpf-split top_wf subtype-fpf2 fpf-domain_wf length_wf member-less_than fpf-join-sub fpf-sub_transitivity fpf-sub-reflexive assert_of_bnot fpf_ap_single_lemma fpf-single-dom decidable-equal-deq eqff_to_assert eqtt_to_assert bool_subtype_base bool_wf subtype_base_sq bool_cases fpf-join-ap-sq true_wf squash_wf assert_functionality_wrt_uiff subtype_rel-equal istype-universe assert_elim fpf-single-dom-sq fpf-join-dom subtype_rel_self iff_weakening_equal assert_witness istype-assert and_wf fpf_ap_pair_lemma int_formula_prop_eq_lemma intformeq_wf decidable__lt proper_sublist_length decidable__equal_int length_sublist member-fpf-domain
Rules used in proof :  universeEquality functionEquality isectEquality instantiate functionExtensionality productEquality orFunctionality addLevel inlFormation hypothesis_subsumption promote_hyp equalitySymmetry equalityTransitivity axiomEquality independent_pairEquality independent_pairFormation intEquality int_eqEquality dependent_pairFormation independent_functionElimination approximateComputation productElimination imageElimination unionElimination cumulativity dependent_functionElimination rename because_Cache voidEquality voidElimination isect_memberEquality independent_isectElimination hypothesis lambdaEquality sqequalRule applyEquality hypothesisEquality natural_numberEquality thin isectElimination sqequalHypSubstitution extract_by_obid introduction cut lambdaFormation isect_memberFormation sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution impliesFunctionality baseClosed imageMemberEquality dependent_set_memberEquality_alt equalityIstype universeIsType lambdaEquality_alt inhabitedIsType lambdaFormation_alt Error :memTop,  productIsType applyLambdaEquality setElimination hyp_replacement functionIsType dependent_set_memberEquality

Latex:
\mforall{}[A:Type]
    \mforall{}eq:EqDecider(A)
        \mforall{}[B:A  {}\mrightarrow{}  Type]
            \mforall{}f:a:A  fp->  B[a]
                \mexists{}g:a:A  fp->  B[a]
                  \mexists{}a:A
                    \mexists{}b:B[a]
                      ((f  \msubseteq{}  g  \moplus{}  a  :  b  \mwedge{}  g  \moplus{}  a  :  b  \msubseteq{}  f)
                      \mwedge{}  (\mforall{}a':A.  \mneg{}(a'  =  a)  supposing  \muparrow{}a'  \mmember{}  dom(g))
                      \mwedge{}  ||fpf-domain(g)||  <  ||fpf-domain(f)||) 
                supposing  0  <  ||fpf-domain(f)||



Date html generated: 2020_05_20-AM-09_03_14
Last ObjectModification: 2020_01_27-PM-04_20_44

Theory : finite!partial!functions


Home Index