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

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


Proof




Definitions occuring in Statement :  gcd-reduce-ineq-constraints: gcd-reduce-ineq-constraints(sat;LL) satisfies-integer-inequality: 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-inequality: xs ⋅ as ≥0 ge: i ≥  le: A ≤ B subtype_rel: A ⊆B nat_plus: + so_lambda: λ2x.t[x] so_apply: x[s] prop: int_seg: {i..j-} lelt: i ≤ j < k 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 subtract: m sq_stable: SqStable(P) so_apply: x[s1;s2] so_lambda: λ2y.t[x; y] colength: colength(L) nat: true: True btrue: tt ifthenelse: if then else fi  assert: b gcd-reduce-ineq-constraints: gcd-reduce-ineq-constraints(sat;LL) eager-map: eager-map(f;as) bfalse: ff decidable: Dec(P) exists: x:A. B[x] iff: ⇐⇒ Q callbyvalueall: callbyvalueall has-value: (a)↓ has-valueall: has-valueall(a) rev_implies:  Q rev_uimplies: rev_uimplies(P;Q) nequal: a ≠ b ∈  int_nzero: -o pi1: fst(t) hd: hd(l) bnot: ¬bb unit: Unit bool: 𝔹 int-vec-mul: as compose: g evalall: evalall(t) outr: outr(x) gt: i > j select: L[n] l_member: (x ∈ l)
Lemmas referenced :  assert_witness member-less_than le_witness_for_triv l_all_wf list_wf equal-wf-base list_subtype_base int_subtype_base set_subtype_base less_than_wf satisfies-integer-inequality_wf l_member_wf istype-assert gcd-reduce-ineq-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 zero-add add-swap add-commutes add-associates sq_stable__le spread_cons_lemma le_wf nat_wf subtract-1-ge-0 istype-le istype-false colength_wf_list colength-cons-not-zero set_wf ge_wf less_than_irreflexivity nat_properties cons_wf equal-wf-base-T l_all_wf_nil accumulate_abort_nil_lemma length_of_nil_lemma eager_map_nil_lemma istype-true null_nil_lemma null_cons_lemma eager_map_cons_lemma null_wf decidable__assert cons-listp accumulate_abort_cons_lemma one-mul zero-mul mul-distributes-right two-mul add-mul-special subtract_wf le-add-cancel2 add-zero add_functionality_wrt_le minus-one-mul-top minus-one-mul minus-add condition-implies-le le_antisymmetry_iff istype-sqequal length_wf_nat non_neg_length nat_plus_properties void-valueall-type int-valueall-type list-valueall-type union-valueall-type valueall-type-has-valueall le-add-cancel less-iff-le mul-commutes minus-zero add-is-int-iff int_dot_nil_left_lemma int_dot_cons_lemma length-singleton nil_wf l_all_cons istype-top evalall-reduce divide_wfa eager-map_wf list-value-type nequal_wf not-le-2 decidable__le not-equal-2 div_floor_wf int-value-type value-type-has-value not-lt-2 decidable__lt gcd-list_wf absval_wf eager-map-is-map map_cons_lemma map_nil_lemma map-length map_wf add_nat_plus gcd-list-property assert_wf iff_weakening_uiff assert-bnot bool_subtype_base bool_wf bool_cases_sqequal eqff_to_assert assert_of_lt_int eqtt_to_assert lt_int_wf absval_unfold2 mul-associates int-vec-mul-mul int-vec-mul_wf int-ineq-constraint-factor-sym cons_one_one map-map trivial_map divide-exact integer-dot-product_wf multiply-is-int-iff true_wf squash_wf decidable__equal_int minus-minus l_all_nil subtype_rel_sets unit_wf2 isl_wf and_wf top_wf it_wf accumulate_abort-aborted not-gt-2 multiply_nat_wf add_nat_wf l_all_iff select_wf member-gcd-reduce-ineq-constraints int_dot_cons_nil_lemma not_assert_elim istype-universe
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 equalityTransitivity equalitySymmetry functionIsTypeImplies inhabitedIsType universeIsType setEquality intEquality baseApply closedConclusion baseClosed applyEquality natural_numberEquality 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 imageMemberEquality intWeakElimination equalityIsType4 functionIsType sqleReflexivity callbyvalueReduce multiplyEquality minusEquality addEquality dependent_pairFormation_alt inlEquality_alt voidEquality unionEquality lessCases axiomSqEquality inrFormation_alt inlFormation_alt equalityElimination hyp_replacement Error :memTop,  lambdaFormation isect_memberEquality lambdaEquality addLevel levelHypothesis dependent_set_memberEquality universeEquality

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



Date html generated: 2020_05_19-PM-09_39_12
Last ObjectModification: 2020_01_01-AM-10_04_14

Theory : omega


Home Index