Intersección de los primos y los mayores que dos
Los conjuntos de los números primos, los mayores que 2 y los impares se definen por
1 2 3 |
def primos : set ℕ := {n | prime n} def mayoresQue2 : set ℕ := {n | n > 2} def impares : set ℕ := {n | ¬ even n} |
Demostrar que
1 |
primos ∩ mayoresQue2 ⊆ impares |
Para ello, completar la siguiente teoría de Lean:
1 2 3 4 5 6 7 8 9 10 11 12 |
import data.nat.parity import data.nat.prime import tactic open nat def primos : set ℕ := {n | prime n} def mayoresQue2 : set ℕ := {n | n > 2} def impares : set ℕ := {n | ¬ even n} example : primos ∩ mayoresQue2 ⊆ impares := sorry |
Soluciones
Soluciones con Lean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import data.nat.parity import data.nat.prime import tactic open nat def primos : set ℕ := {n | prime n} def mayoresQue2 : set ℕ := {n | n > 2} def impares : set ℕ := {n | ¬ even n} example : primos ∩ mayoresQue2 ⊆ impares := begin unfold primos mayoresQue2 impares, intro n, simp, intro hn, cases prime.eq_two_or_odd hn with h h, { rw h, intro, linarith, }, { rw even_iff, rw h, norm_num }, end |
Soluciones con Isabelle/HOL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
theory Interseccion_de_los_primos_y_los_mayores_que_dos imports Main "HOL-Number_Theory.Number_Theory" begin definition primos :: "nat set" where "primos = {n ∈ ℕ . prime n}" definition mayoresQue2 :: "nat set" where "mayoresQue2 = {n ∈ ℕ . n > 2}" definition impares :: "nat set" where "impares = {n ∈ ℕ . ¬ even n}" section ‹1ª demostración› lemma "primos ∩ mayoresQue2 ⊆ impares" proof fix x assume "x ∈ primos ∩ mayoresQue2" then have "x ∈ ℕ ∧ prime x ∧ 2 < x" by (simp add: primos_def mayoresQue2_def) then have "x ∈ ℕ ∧ odd x" by (simp add: prime_odd_nat) then show "x ∈ impares" by (simp add: impares_def) qed section ‹2ª demostración› lemma "primos ∩ mayoresQue2 ⊆ impares" unfolding primos_def mayoresQue2_def impares_def by (simp add: Collect_mono_iff Int_def prime_odd_nat) section ‹3ª demostración› lemma "primos ∩ mayoresQue2 ⊆ impares" unfolding primos_def mayoresQue2_def impares_def by (auto simp add: prime_odd_nat) end |
Nuevas soluciones
- En los comentarios se pueden escribir nuevas soluciones.
- El código se debe escribir entre una línea con <pre lang="isar"> y otra con </pre>