Nuprl Lemma : satisfies-gcd-reduce-eq-constraints

[n:ℕ+]. ∀[eqs,sat:{L:ℤ List| ||L|| n ∈ ℤ}  List]. ∀[xs:{L:ℤ List| ||L|| n ∈ ℤ].
  uiff((∀as∈eqs.xs ⋅ as =0);(↑isl(gcd-reduce-eq-constraints(sat;eqs)))
  ∧ (∀as∈outl(gcd-reduce-eq-constraints(sat;eqs)).xs ⋅ as =0)) 
  supposing (∀as∈sat.xs ⋅ as =0) ∧ 0 < ||xs|| ∧ (hd(xs) 1 ∈ ℤ)


Proof




Definitions occuring in Statement :  gcd-reduce-eq-constraints: gcd-reduce-eq-constraints(sat;LL) satisfies-integer-equality: xs ⋅ as =0 l_all: (∀x∈L.P[x]) length: ||as|| hd: hd(l) list: List nat_plus: + outl: outl(x) assert: b isl: isl(x) less_than: a < b uiff: uiff(P;Q) uimplies: supposing a uall: [x:A]. B[x] and: P ∧ Q set: {x:A| B[x]}  natural_number: $n int: equal: t ∈ T
Definitions unfolded in proof :  uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a member: t ∈ T uall: [x:A]. B[x] implies:  Q l_all: (∀x∈L.P[x]) all: x:A. B[x] satisfies-integer-equality: xs ⋅ as =0 subtype_rel: A ⊆B nat_plus: + so_lambda: λ2x.t[x] so_apply: x[s] prop: int_seg: {i..j-} lelt: i ≤ j < k le: A ≤ B isl: isl(x) outl: outl(x) not: ¬A false: False listp: List+ less_than: a < b squash: T cand: c∧ B guard: {T} cons: [a b] or: P ∨ Q less_than': less_than'(a;b) length: ||as|| list_ind: list_ind nil: [] it: sq_type: SQType(T) top: Top true: True subtract: m rev_implies:  Q iff: ⇐⇒ Q decidable: Dec(P) sq_stable: SqStable(P) so_apply: x[s1;s2] so_lambda: λ2y.t[x; y] colength: colength(L) ge: i ≥  nat: gcd-reduce-eq-constraints: gcd-reduce-eq-constraints(sat;LL) assert: b ifthenelse: if then else fi  btrue: tt eager-map: eager-map(f;as) bfalse: ff exposed-bfalse: exposed-bfalse bool: 𝔹 unit: Unit exists: x:A. B[x] bnot: ¬bb nequal: a ≠ b ∈  callbyvalueall: callbyvalueall has-value: (a)↓ has-valueall: has-valueall(a) outr: outr(x) evalall: evalall(t) rev_uimplies: rev_uimplies(P;Q) int_nzero: -o pi1: fst(t) hd: hd(l) int-vec-mul: as compose: g gt: i > j int_lower: {...i} l_member: (x ∈ l) select: L[n]
Lemmas referenced :  assert_witness member-less_than l_all_wf list_wf equal-wf-base list_subtype_base int_subtype_base set_subtype_base less_than_wf satisfies-integer-equality_wf l_member_wf istype-assert gcd-reduce-eq-constraints_wf btrue_wf bfalse_wf listp_wf assert_elim btrue_neq_bfalse subtype_rel_list istype-int subtype_rel_sets_simple length_wf less_than_transitivity1 le_weakening istype-less_than equal_wf nat_plus_wf product_subtype_list list-cases subtype_base_sq reduce_hd_cons_lemma istype-void length_of_cons_lemma istype-nat le_weakening2 minus-minus le-add-cancel zero-add add-commutes add_functionality_wrt_le le_antisymmetry_iff minus-one-mul-top add-swap minus-one-mul minus-add add-associates condition-implies-le not-equal-2 istype-false subtract_wf decidable__equal_int sq_stable__le spread_cons_lemma le_wf nat_wf subtract-1-ge-0 istype-le colength_wf_list colength-cons-not-zero set_wf ge_wf less_than_irreflexivity nat_properties accumulate_abort_nil_lemma l_all_wf_nil cons_wf length_of_nil_lemma eager_map_nil_lemma istype-true null_nil_lemma null_cons_lemma null_wf decidable__assert eager_map_cons_lemma cons-listp accumulate_abort_cons_lemma eq_int_wf eqtt_to_assert assert_of_eq_int valueall-type-has-valueall union-valueall-type list-valueall-type int-valueall-type void-valueall-type nil_wf eqff_to_assert bool_cases_sqequal bool_wf bool_subtype_base assert-bnot neg_assert_of_eq_int unit_wf2 equal-valueall-type it_wf evalall-reduce l_all_cons int_dot_cons_lemma int_dot_nil_left_lemma mul-commutes add-zero one-mul non_neg_length length_wf_nat istype-sqequal le-add-cancel2 add-mul-special two-mul mul-distributes-right zero-mul nat_plus_properties int-value-type value-type-has-value not-lt-2 decidable__lt gcd-list_wf absval_wf istype-top top_wf nequal_wf less-iff-le not-le-2 decidable__le remainder_wfa accumulate_abort-aborted eager-map_wf list-value-type divide_wfa eager-map-is-map map-length map_wf gcd-list-property minus-zero assert_wf iff_weakening_uiff assert_of_lt_int lt_int_wf absval_unfold2 int-eq-constraint-factor-sym absval-positive squash_wf true_wf istype-universe integer-dot-product_wf subtype_rel_self iff_weakening_equal absval_pos map-map list_extensionality map_length length-map select-map divide-exact select_wf not-gt-2 absval_neg div_anti_sym mul-minus-1 map_cons_lemma int-dot-mul-left zero_ann_a rem_sym l_all_nil equal-wf-base-T subtype_rel_sets isl_wf and_wf length-singleton int_dot_cons_nil_lemma add-is-int-iff trivial-equal l_all_iff member-gcd-reduce-constraints add_nat_plus mul_preserves_eq int-vec-mul_wf div_rem_sum add_functionality_wrt_eq absval_lbound absval-non-neg mul-associates mul-swap
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity independent_pairFormation isect_memberFormation_alt introduction cut sqequalRule sqequalHypSubstitution productElimination thin independent_pairEquality extract_by_obid isectElimination because_Cache independent_functionElimination hypothesis lambdaEquality_alt dependent_functionElimination hypothesisEquality axiomEquality independent_isectElimination functionIsTypeImplies inhabitedIsType universeIsType setEquality intEquality baseApply closedConclusion baseClosed applyEquality natural_numberEquality equalityTransitivity equalitySymmetry setElimination rename setIsType productIsType lambdaFormation_alt unionElimination equalityIstype dependent_set_memberEquality_alt applyLambdaEquality voidElimination imageElimination sqequalBase isect_memberEquality_alt isectIsTypeImplies hypothesis_subsumption promote_hyp cumulativity instantiate minusEquality addEquality imageMemberEquality intWeakElimination functionIsType sqleReflexivity callbyvalueReduce equalityElimination int_eqReduceTrueSq unionEquality voidEquality inlEquality_alt dependent_pairFormation_alt int_eqReduceFalseSq inrEquality_alt int_eqEquality multiplyEquality lessCases axiomSqEquality inrFormation_alt inlFormation_alt universeEquality hyp_replacement Error :memTop,  lambdaFormation isect_memberEquality lambdaEquality addLevel levelHypothesis dependent_set_memberEquality

Latex:
\mforall{}[n:\mBbbN{}\msupplus{}].  \mforall{}[eqs,sat:\{L:\mBbbZ{}  List|  ||L||  =  n\}    List].  \mforall{}[xs:\{L:\mBbbZ{}  List|  ||L||  =  n\}  ].
    uiff((\mforall{}as\mmember{}eqs.xs  \mcdot{}  as  =0);(\muparrow{}isl(gcd-reduce-eq-constraints(sat;eqs)))
    \mwedge{}  (\mforall{}as\mmember{}outl(gcd-reduce-eq-constraints(sat;eqs)).xs  \mcdot{}  as  =0)) 
    supposing  (\mforall{}as\mmember{}sat.xs  \mcdot{}  as  =0)  \mwedge{}  0  <  ||xs||  \mwedge{}  (hd(xs)  =  1)



Date html generated: 2020_05_19-PM-09_38_47
Last ObjectModification: 2020_01_01-AM-10_05_12

Theory : omega


Home Index