1
1
/- # axiom
2
2
`axiom` は、公理(axiom)を宣言するためのコマンドです。公理とは、議論の前提のことで、証明を与えることなく正しいと仮定される命題です。
3
3
-/
4
- namespace Axiom --#
5
4
6
5
/-- sorryAx を真似て作った公理 -/
7
6
axiom mySorryAx {P : Prop } : P
@@ -10,7 +9,7 @@ axiom mySorryAx {P : Prop} : P
10
9
theorem FLT : ∀ x y z n : Nat, n > 2 → x^n + y^n ≠ z^n := by
11
10
apply mySorryAx
12
11
13
- /-- info: 'Axiom. FLT' depends on axioms: [ Axiom. mySorryAx] -/
12
+ /-- info: 'FLT' depends on axioms: [ mySorryAx ] -/
14
13
#guard_msgs in #print axioms FLT
15
14
16
15
/- ## 組み込みの公理
@@ -30,8 +29,9 @@ theorem ex_prop_ext (a b : Prop) (p : Prop → Prop) (h : a ↔ b) (h₁ : p a)
30
29
rw [←this]
31
30
assumption
32
31
33
- /-- info: 'Axiom.ex_prop_ext' depends on axioms: [ propext ] -/
34
- #guard_msgs in #print axioms ex_prop_ext
32
+ /-- info: 'ex_prop_ext' depends on axioms: [ propext ] -/
33
+ #guard_msgs in
34
+ #print axioms ex_prop_ext
35
35
36
36
/- ### 商の公理 Quot.sound
37
37
任意の型 `α : Sort u` と `α` 上の2項関係 `r : α → α → Prop` に対して、その商(quotient)を作ることができます。商の概念は、以下に示す複数の定数から構成されます。
@@ -134,7 +134,7 @@ theorem lambda_eq (f : (x : α) → β x) : f = (fun x => f x) := by rfl
134
134
135
135
-- 依存関数 `f` がラムダ式 `fun x => f x` に等しいことは、定義から従うので
136
136
-- 何の公理も必要としない。
137
- /-- info: 'Axiom. lambda_eq' does not depend on any axioms -/
137
+ /-- info: 'lambda_eq' does not depend on any axioms -/
138
138
#guard_msgs in
139
139
#print axioms lambda_eq
140
140
@@ -153,7 +153,7 @@ theorem funApp_eq (f : (x : α) → β x) : funApp (f := f) = f := calc
153
153
_ = f := by rw [lambda_eq f]
154
154
155
155
-- これも何の公理も必要としない
156
- /-- info: 'Axiom. funApp_eq' does not depend on any axioms -/
156
+ /-- info: 'funApp_eq' does not depend on any axioms -/
157
157
#guard_msgs in
158
158
#print axioms funApp_eq
159
159
@@ -199,7 +199,7 @@ theorem my_funext {f g : (x : α) → β x} (h : ∀ x, f x = g x) : f = g := by
199
199
-- 「`g` を適用する関数」と `g` は等しい
200
200
_ = g := by rw [funApp_eq g]
201
201
202
- /-- info: 'Axiom. my_funext' depends on axioms: [ Quot.sound ] -/
202
+ /-- info: 'my_funext' depends on axioms: [ Quot.sound ] -/
203
203
#guard_msgs in #print axioms my_funext
204
204
205
205
/- ### 選択原理 Classical.choice { #ClassicalChoice }
@@ -286,7 +286,7 @@ theorem lemma_em (himp : P → Q) (hor : ¬ Q ∨ P) : P ∨ ¬ P := by
286
286
exact h
287
287
288
288
-- 何の公理も使用していない
289
- /-- info: 'Axiom. lemma_em' does not depend on any axioms -/
289
+ /-- info: 'lemma_em' does not depend on any axioms -/
290
290
#guard_msgs in #print axioms lemma_em
291
291
292
292
/- 選択原理を用いると命題 `Q` を構成することができ、関数外延性と命題外延性により、それが所望の性質を持つことを示すことができます。-/
@@ -349,5 +349,3 @@ theorem em (P : Prop) : P ∨ ¬ P := by
349
349
350
350
-- 残りの1つでは `u ≠ v` が成り立つ。
351
351
simp [hu, hv]
352
-
353
- end Axiom --#
0 commit comments