-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTransitividad_de_la_divisibilidad.lean
98 lines (88 loc) · 1.88 KB
/
Transitividad_de_la_divisibilidad.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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
-- ---------------------------------------------------------------------
-- Ejercicio. Demostrar que la relación de divisibilidad es transitiva.
-- ----------------------------------------------------------------------
import tactic
variables {a b c : ℕ}
-- 1ª demostración
-- ===============
example
(divab : a ∣ b)
(divbc : b ∣ c) :
a ∣ c :=
begin
rcases divab with ⟨d, beq : b = a * d⟩,
rcases divbc with ⟨e, ceq : c = b * e⟩,
have h1 : c = a * (d * e),
calc c = b * e : ceq
... = (a * d) * e : congr_arg (* e) beq
... = a * (d * e) : mul_assoc a d e,
show a ∣ c,
by exact dvd.intro (d * e) (eq.symm h1),
end
-- 2ª demostración
-- ===============
example
(divab : a ∣ b)
(divbc : b ∣ c) :
a ∣ c :=
begin
cases divab with d beq,
cases divbc with e ceq,
rw [ceq, beq],
use (d * e),
exact mul_assoc a d e,
end
-- Su desarrollo es
--
-- a b c : ℕ,
-- divab : a ∣ b,
-- divbc : b ∣ c
-- ⊢ a ∣ c
-- >> cases divab with d beq,
-- a b c : ℕ,
-- divbc : b ∣ c,
-- d : ℕ,
-- beq : b = a * d
-- ⊢ a ∣ c
-- >> cases divbc with e ceq,
-- a b c d : ℕ,
-- beq : b = a * d,
-- e : ℕ,
-- ceq : c = b * e
-- ⊢ a ∣ c
-- >> rw [ceq, beq],
-- ⊢ a ∣ a * d * e
-- >> use (d * e),
-- ⊢ a * d * e = a * (d * e)
-- >> ring,
-- no goals
-- 3ª demostración
-- ===============
example
(divab : a ∣ b)
(divbc : b ∣ c) :
a ∣ c :=
begin
rcases divbc with ⟨e, rfl⟩,
rcases divab with ⟨d, rfl⟩,
use (d * e),
ring,
end
-- Su desarrollo es
--
-- a b c : ℕ,
-- divab : a ∣ b,
-- divbc : b ∣ c
-- ⊢ a ∣ c
-- >> rcases divbc with ⟨e, rfl⟩,
-- a b : ℕ,
-- divab : a ∣ b,
-- e : ℕ
-- ⊢ a ∣ b * e
-- >> rcases divab with ⟨d, rfl⟩,
-- a e d : ℕ
-- ⊢ a ∣ a * d * e
-- >> use (d * e),
-- ⊢ a * d * e = a * (d * e)
-- >> ring,
-- no goals