### Nuprl Lemma : poss-maj-invariant

`∀T:Type. ∀eq:EqDecider(T). ∀L:T List. ∀x:T.`
`  let n,z = poss-maj(eq;L;x) `
`  in ((count(eq z;L) - count(λt.(¬b(eq z t));L)) ≤ n)`
`     ∧ (∀y:T. ((¬↑(eq z y)) `` (n ≤ (count(λt.(¬b(eq y t));L) - count(eq y;L)))))`

Proof

Definitions occuring in Statement :  poss-maj: `poss-maj(eq;L;x)` count: `count(P;L)` list: `T List` deq: `EqDecider(T)` bnot: `¬bb` assert: `↑b` le: `A ≤ B` all: `∀x:A. B[x]` not: `¬A` implies: `P `` Q` and: `P ∧ Q` apply: `f a` lambda: `λx.A[x]` spread: spread def subtract: `n - m` universe: `Type`
Definitions unfolded in proof :  all: `∀x:A. B[x]` uall: `∀[x:A]. B[x]` member: `t ∈ T` guard: `{T}` int_seg: `{i..j-}` lelt: `i ≤ j < k` and: `P ∧ Q` uimplies: `b supposing a` satisfiable_int_formula: `satisfiable_int_formula(fmla)` exists: `∃x:A. B[x]` false: `False` implies: `P `` Q` not: `¬A` top: `Top` prop: `ℙ` decidable: `Dec(P)` or: `P ∨ Q` subtype_rel: `A ⊆r B` le: `A ≤ B` less_than': `less_than'(a;b)` nat: `ℕ` ge: `i ≥ j ` less_than: `a < b` squash: `↓T` cons: `[a / b]` assert: `↑b` ifthenelse: `if b then t else f fi ` bfalse: `ff` iff: `P `⇐⇒` Q` uiff: `uiff(P;Q)` rev_implies: `P `` Q` int_iseg: `{i...j}` cand: `A c∧ B` so_lambda: `λ2x.t[x]` deq: `EqDecider(T)` so_apply: `x[s]` count: `count(P;L)` poss-maj: `poss-maj(eq;L;x)` list_accum: list_accum nil: `[]` it: `⋅` subtract: `n - m` so_lambda: `λ2x y.t[x; y]` so_apply: `x[s1;s2]` bool: `𝔹` unit: `Unit` btrue: `tt` eqof: `eqof(d)` sq_type: `SQType(T)` bnot: `¬bb` int_upper: `{i...}` rev_uimplies: `rev_uimplies(P;Q)`
Lemmas referenced :  int_seg_properties satisfiable-full-omega-tt intformand_wf intformless_wf itermVar_wf itermConstant_wf intformle_wf int_formula_prop_and_lemma int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_le_lemma int_formula_prop_wf int_seg_wf decidable__equal_int subtract_wf int_seg_subtype false_wf decidable__le intformnot_wf itermSubtract_wf intformeq_wf int_formula_prop_not_lemma int_term_value_subtract_lemma int_formula_prop_eq_lemma le_wf length_wf non_neg_length nat_properties decidable__lt lelt_wf less_than_wf decidable__assert null_wf list-cases product_subtype_list null_cons_lemma last-lemma-sq pos_length iff_transitivity not_wf equal-wf-T-base list_wf assert_wf bnot_wf assert_of_null iff_weakening_uiff assert_of_bnot firstn_wf length_firstn all_wf count_wf equal_wf set_wf primrec-wf2 nat_wf itermAdd_wf int_term_value_add_lemma length_wf_nat deq_wf reduce_nil_lemma last_wf list_accum_append subtype_rel_list top_wf list_accum_cons_lemma list_accum_nil_lemma poss-maj_wf bool_wf eqtt_to_assert safe-assert-deq eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot eq_int_wf assert_of_eq_int neg_assert_of_eq_int int_upper_subtype_nat nequal-le-implies zero-add cons_wf nil_wf subtract-is-int-iff le_weakening2 int_upper_properties count-append count-single eqof_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity lambdaFormation cut thin introduction extract_by_obid sqequalHypSubstitution isectElimination natural_numberEquality because_Cache hypothesisEquality hypothesis setElimination rename productElimination independent_isectElimination dependent_pairFormation lambdaEquality int_eqEquality intEquality dependent_functionElimination isect_memberEquality voidElimination voidEquality sqequalRule independent_pairFormation computeAll unionElimination addLevel applyEquality equalityTransitivity equalitySymmetry applyLambdaEquality levelHypothesis hypothesis_subsumption dependent_set_memberEquality cumulativity imageElimination independent_functionElimination promote_hyp baseClosed impliesFunctionality productEquality functionEquality addEquality universeEquality equalityElimination instantiate pointwiseFunctionality baseApply closedConclusion impliesLevelFunctionality hyp_replacement

Latex:
\mforall{}T:Type.  \mforall{}eq:EqDecider(T).  \mforall{}L:T  List.  \mforall{}x:T.
let  n,z  =  poss-maj(eq;L;x)
in  ((count(eq  z;L)  -  count(\mlambda{}t.(\mneg{}\msubb{}(eq  z  t));L))  \mleq{}  n)
\mwedge{}  (\mforall{}y:T.  ((\mneg{}\muparrow{}(eq  z  y))  {}\mRightarrow{}  (n  \mleq{}  (count(\mlambda{}t.(\mneg{}\msubb{}(eq  y  t));L)  -  count(eq  y;L)))))

Date html generated: 2017_04_17-AM-09_08_31
Last ObjectModification: 2017_02_27-PM-05_18_12

Theory : decidable!equality

Home Index