### Nuprl Lemma : list-index-cmp-zero

`∀[T:Type]. ∀[eq:EqDecider(T)]. ∀[L:T List]. ∀[A:Type]. ∀[f:A ⟶ T]. ∀[x,y:{x:A| (f x ∈ L)} ].`
`  uiff((list-index-cmp(eq;L;f) x y) = 0 ∈ ℤ;(f x) = (f y) ∈ T)`

Proof

Definitions occuring in Statement :  list-index-cmp: `list-index-cmp(eq;L;f)` l_member: `(x ∈ l)` list: `T List` deq: `EqDecider(T)` uiff: `uiff(P;Q)` uall: `∀[x:A]. B[x]` set: `{x:A| B[x]} ` apply: `f a` function: `x:A ⟶ B[x]` natural_number: `\$n` int: `ℤ` universe: `Type` equal: `s = t ∈ T`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` uiff: `uiff(P;Q)` and: `P ∧ Q` uimplies: `b supposing a` subtype_rel: `A ⊆r B` comparison: `comparison(T)` prop: `ℙ` int-minus-comparison: `int-minus-comparison(f)` list-index-cmp: `list-index-cmp(eq;L;f)` guard: `{T}` implies: `P `` Q` all: `∀x:A. B[x]` sq_type: `SQType(T)` so_apply: `x[s]` so_lambda: `λ2x.t[x]` int_seg: `{i..j-}` squash: `↓T` less_than: `a < b` top: `Top` not: `¬A` false: `False` exists: `∃x:A. B[x]` satisfiable_int_formula: `satisfiable_int_formula(fmla)` or: `P ∨ Q` decidable: `Dec(P)` lelt: `i ≤ j < k` rev_implies: `P `` Q` iff: `P `⇐⇒` Q` true: `True`
Lemmas referenced :  list-index-cmp_wf int_subtype_base l_member_wf list_wf deq_wf list-index-property lelt_wf set_subtype_base length_wf int_seg_wf subtype_base_sq subtract_wf equal-wf-T-base int_formula_prop_less_lemma intformless_wf decidable__lt int_formula_prop_le_lemma intformle_wf decidable__le int_formula_prop_wf int_term_value_constant_lemma int_term_value_subtract_lemma int_term_value_var_lemma int_formula_prop_eq_lemma int_formula_prop_not_lemma int_formula_prop_and_lemma itermConstant_wf itermSubtract_wf itermVar_wf intformeq_wf intformnot_wf intformand_wf satisfiable-full-omega-tt decidable__equal_int int_seg_properties equal_wf isl-list-index list-index_wf top_wf outl_wf full-omega-unsat istype-int istype-void squash_wf true_wf subtype_rel_self iff_weakening_equal
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity Error :isect_memberFormation_alt,  introduction cut independent_pairFormation hypothesis Error :equalityIsType4,  Error :universeIsType,  intEquality applyEquality extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality Error :lambdaEquality_alt,  setElimination rename Error :inhabitedIsType,  equalityTransitivity equalitySymmetry sqequalRule baseClosed Error :equalityIsType1,  productElimination independent_pairEquality Error :isect_memberEquality_alt,  axiomEquality Error :isectIsTypeImplies,  Error :setIsType,  Error :functionIsType,  universeEquality because_Cache independent_isectElimination cumulativity functionExtensionality independent_functionElimination dependent_functionElimination lambdaEquality natural_numberEquality instantiate imageElimination dependent_set_memberEquality computeAll voidEquality voidElimination isect_memberEquality int_eqEquality dependent_pairFormation unionElimination lambdaFormation Error :dependent_set_memberEquality_alt,  closedConclusion Error :lambdaFormation_alt,  applyLambdaEquality approximateComputation Error :dependent_pairFormation_alt,  hyp_replacement imageMemberEquality

Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[L:T  List].  \mforall{}[A:Type].  \mforall{}[f:A  {}\mrightarrow{}  T].  \mforall{}[x,y:\{x:A|  (f  x  \mmember{}  L)\}  ].
uiff((list-index-cmp(eq;L;f)  x  y)  =  0;(f  x)  =  (f  y))

Date html generated: 2019_06_20-PM-01_56_41
Last ObjectModification: 2018_10_15-PM-02_32_50

Theory : decidable!equality

Home Index