Si f: A → B y g: B → C son inyectiva, entonces g ∘ f es inyectiva
Demostrar que si f: A → B y g: B → C son inyectiva, entonces g ∘ f es inyectiva.
Para ello, completar la siguiente teoría de Lean:
1 2 3 4 5 6 7 8 9 10 11 12 |
import tactic open function variables {A : Type*} {B : Type*} {C : Type*} variables {f : A → B} {g : B → C} example (hg : injective g) (hf : injective f) : injective (g ∘ f) := sorry |
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 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 |
import tactic open function variables {A : Type*} {B : Type*} {C : Type*} variables {f : A → B} {g : B → C} -- 1ª demostración -- =============== example (hg : injective g) (hf : injective f) : injective (g ∘ f) := begin assume x : A, assume y : A, assume h1: (g ∘ f) x = (g ∘ f) y, have h2: g (f x) = g (f y) := h1, have h3: f x = f y := hg h2, show x = y, by exact hf h3, end -- 2ª demostración -- =============== example (hg : injective g) (hf : injective f) : injective (g ∘ f) := begin intros x y h, apply hf, apply hg, apply h, end -- 3ª demostración -- =============== example (hg : injective g) (hf : injective f) : injective (g ∘ f) := λ x y h, hf (hg h) -- 4ª demostración -- =============== example (hg : injective g) (hf : injective f) : injective (g ∘ f) := -- by library_search injective.comp hg hf -- 5ª demostración -- =============== example (hg : injective g) (hf : injective f) : injective (g ∘ f) := -- by hint by tauto |
Se puede interactuar con la prueba anterior en esta sesión con Lean.
Referencias
- J. Avigad, K. Buzzard, R.Y. Lewis y P. Massot. Mathematics in Lean, p. 29.