Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
Try doing some basic maths questions in the Lean Theorem Prover. Functions, real numbers, equivalence relations and groups. Click on README.md and then on "Open in CoCalc with one click".
Project: Xena
Views: 18536License: APACHE
/- Copyright (c) 2019 Casper Putz. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joey van Langen, Casper Putz -/ import algebra.char_p data.zmod.basic linear_algebra.basis universes u variables (α : Type u) [discrete_field α] [fintype α] namespace finite_field theorem card (p : ℕ) [char_p α p] : ∃ (n : ℕ+), nat.prime p ∧ fintype.card α = p^(n : ℕ) := have hp : nat.prime p, from char_p.char_is_prime α p, have V : vector_space (zmodp p hp) α, from {..zmod.to_module'}, let ⟨n, h⟩ := @vector_space.card_fintype _ _ _ _ V _ _ in have hn : n > 0, from or.resolve_left (nat.eq_zero_or_pos n) (assume h0 : n = 0, have fintype.card α = 1, by rw[←nat.pow_zero (fintype.card _), ←h0]; exact h, have (1 : α) = 0, from (fintype.card_le_one_iff.mp (le_of_eq this)) 1 0, absurd this one_ne_zero), ⟨⟨n, hn⟩, hp, fintype.card_fin p ▸ h⟩ theorem card' : ∃ (p : ℕ) (n : ℕ+), nat.prime p ∧ fintype.card α = p^(n : ℕ) := let ⟨p, hc⟩ := char_p.exists α in ⟨p, @finite_field.card α _ _ p hc⟩ end finite_field