Nuprl Lemma : wilson-theorem

n:{i:ℤ1 < i} (prime(n) ⇐⇒ (n 1)! ≡ (-1) mod n)


This theorem is one of freek's list of 100 theorems



Proof




Definitions occuring in Statement :  fact: (n)! eqmod: a ≡ mod m prime: prime(a) less_than: a < b all: x:A. B[x] iff: ⇐⇒ Q set: {x:A| B[x]}  subtract: m minus: -n natural_number: $n int:
Definitions unfolded in proof :  all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q member: t ∈ T uall: [x:A]. B[x] prop: rev_implies:  Q nat: decidable: Dec(P) or: P ∨ Q uimplies: supposing a not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] false: False top: Top subtype_rel: A ⊆B nat_plus: + cand: c∧ B squash: T so_lambda: λ2x.t[x] so_apply: x[s] int_seg: {i..j-} lelt: i ≤ j < k label: ...$L... t sq_stable: SqStable(P) guard: {T} true: True subtract: m uiff: uiff(P;Q) le: A ≤ B less_than': less_than'(a;b) inject: Inj(A;B;f) cyclic-map: cyclic-map(T) injection: A →⟶ B respects-equality: respects-equality(S;T) compose: g rotate-by: rotate-by(n;i) ge: i ≥  nequal: a ≠ b ∈  int_nzero: -o sq_type: SQType(T) less_than: a < b equipollent: B biject: Bij(A;B;f) surject: Surj(A;B;f) divides: a prime: prime(a) eqmod: a ≡ mod m pm_equal: = ± j
Lemmas referenced :  prime_wf eqmod_wf fact_wf subtract_wf decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermSubtract_wf itermVar_wf intformless_wf istype-int int_formula_prop_and_lemma istype-void int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_subtract_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_formula_prop_wf istype-le istype-less_than equal_wf rotate-by-rotate-by subtype_rel_sets_simple less_than_wf le_wf int_seg_properties decidable__equal_int intformeq_wf int_formula_prop_eq_lemma sq_stable__less_than rotate-by_wf itermAdd_wf int_term_value_add_lemma decidable__lt iff_weakening_equal add-commutes add-swap add-associates zero-add rotate-by-trivial-test int_seg_wf subtract-add-cancel rotate-by-trivial eqmod-prime-order-fixedpoints nat_plus_subtype_nat cyclic-map_wf cyclic-map-conjugate count-cyclic-map istype-false not-lt-2 less-iff-le add_functionality_wrt_le le-add-cancel equipollent_wf inject_wf fun_exp_wf compose_wf respects-equality-set injection_wf all_wf exists_wf nat_wf istype-nat respects-equality-set-trivial set_subtype_base lelt_wf int_subtype_base squash_wf true_wf istype-universe subtype_rel_self nat_properties ge_wf add-comm rem_bounds_1 rem_eq_args_z nequal_wf absval_wf add_functionality_wrt_eq subtract-1-ge-0 subtype_base_sq rem_base_case less_than_transitivity2 itermMinus_wf int_term_value_minus_lemma minus-add minus-minus minus-one-mul rem_addition le_weakening2 rem_rec_case add-mul-special one-mul zero-mul iterate-rotate-by mul-commutes rem-zero subtract_nat_wf false_wf int_seg_subtype_nat subtract-is-int-iff rotate-by-cyclic-map gcd-prime add-member-int_seg2 equal-wf-base-T compose-rotate-by biject_wf iterated-conjugate mul_bounds_1a itermMultiply_wf int_term_value_mul_lemma divides_reflexivity rotate-by-is-id eqmod-zero eqmod_functionality_wrt_eqmod eqmod_weakening subtract_functionality_wrt_eqmod primality-test divides_wf assoced_nelim mul_preserves_le mul_preserves_lt multiply-is-int-iff divides_add divides-fact divides_product only_pm_one_divs_one
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity lambdaFormation_alt independent_pairFormation universeIsType cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin setElimination rename hypothesisEquality hypothesis because_Cache dependent_set_memberEquality_alt natural_numberEquality dependent_functionElimination unionElimination independent_isectElimination approximateComputation independent_functionElimination dependent_pairFormation_alt lambdaEquality_alt int_eqEquality isect_memberEquality_alt voidElimination sqequalRule applyEquality inhabitedIsType equalityTransitivity equalitySymmetry minusEquality setIsType imageElimination intEquality productElimination imageMemberEquality baseClosed addEquality productIsType applyLambdaEquality setEquality functionIsType equalityIstype functionEquality sqequalBase functionExtensionality_alt instantiate universeEquality intWeakElimination axiomEquality functionIsTypeImplies remainderEquality closedConclusion cumulativity multiplyEquality hyp_replacement functionExtensionality pointwiseFunctionality promote_hyp baseApply inlFormation_alt

Latex:
\mforall{}n:\{i:\mBbbZ{}|  1  <  i\}  .  (prime(n)  \mLeftarrow{}{}\mRightarrow{}  (n  -  1)!  \mequiv{}  (-1)  mod  n)



Date html generated: 2019_10_15-AM-11_23_06
Last ObjectModification: 2018_12_08-AM-11_51_50

Theory : general


Home Index