add NNG
parent
6cd71c93fe
commit
6e8911e5da
@ -1,9 +1,35 @@
|
|||||||
import GameServer.Commands
|
import GameServer.Commands
|
||||||
|
|
||||||
|
import NNG.Levels.Tutorial
|
||||||
|
import NNG.Levels.Addition
|
||||||
|
import NNG.Levels.Multiplication
|
||||||
|
import NNG.Levels.Power
|
||||||
|
import NNG.Levels.Function
|
||||||
|
import NNG.Levels.Proposition
|
||||||
|
import NNG.Levels.AdvProposition
|
||||||
|
import NNG.Levels.AdvAddition
|
||||||
|
import NNG.Levels.AdvMultiplication
|
||||||
|
import NNG.Levels.Inequality
|
||||||
|
|
||||||
Game "NNG"
|
Game "NNG"
|
||||||
World "HelloWorld"
|
Title "Natural Number Game"
|
||||||
Level 1
|
Introduction
|
||||||
|
"
|
||||||
|
[intro text missing]
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
* Content and Lean3-version: Kevin Buzzard, Mohammad Pedramfar
|
||||||
|
* Game Engine: Alexander Bentkamp, Jon Eugster, Patrick Massot
|
||||||
|
* Port to Lean 4: Chris Lovett
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
* [Original Lean3 version](https://www.ma.imperial.ac.uk/~buzzard/xena/natural_number_game/)
|
||||||
|
* [Chris' translation to lean4](https://lovettsoftware.com/NaturalNumbers/TutorialWorld/Level1.lean.html)
|
||||||
|
"
|
||||||
|
|
||||||
Statement : 1 + 1 = 2 := rfl
|
Path Tutorial → Addition → Function → Proposition → AdvProposition → AdvAddition
|
||||||
|
Path AdvAddition → AdvMultiplication → Inequality
|
||||||
|
Path Addition → Multiplication → AdvMultiplication
|
||||||
|
Path Multiplication → Power
|
||||||
|
|
||||||
MakeGame
|
MakeGame
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
import GameServer.Commands
|
||||||
|
|
||||||
|
LemmaDoc MyNat.add_zero as "add_zero" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.add_succ as "add_succ" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.zero_add as "zero_add" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.add_assoc as "add_assoc" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.succ_add as "succ_add" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.add_comm as "add_comm" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.one_eq_succ_zero as "one_eq_succ_zero" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc not_iff_imp_false as "not_iff_imp_false" in "Prop"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.succ_inj as "succ_inj" in "Nat"
|
||||||
|
""
|
||||||
|
|
||||||
|
LemmaDoc MyNat.zero_ne_succ as "zero_ne_succ" in "Nat"
|
||||||
|
""
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
import GameServer.Commands
|
||||||
|
|
||||||
|
TacticDoc rfl
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc rewrite
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc rw
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc induction
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc exact
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc apply
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc intro
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc «have»
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc constructor
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc rcases
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc left
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc right
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc contradiction
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
TacticDoc exfalso
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
import NNG.Levels.AdvAddition.Level_1
|
||||||
|
import NNG.Levels.AdvAddition.Level_2
|
||||||
|
import NNG.Levels.AdvAddition.Level_3
|
||||||
|
import NNG.Levels.AdvAddition.Level_4
|
||||||
|
import NNG.Levels.AdvAddition.Level_5
|
||||||
|
import NNG.Levels.AdvAddition.Level_6
|
||||||
|
import NNG.Levels.AdvAddition.Level_7
|
||||||
|
import NNG.Levels.AdvAddition.Level_8
|
||||||
|
import NNG.Levels.AdvAddition.Level_9
|
||||||
|
import NNG.Levels.AdvAddition.Level_10
|
||||||
|
import NNG.Levels.AdvAddition.Level_11
|
||||||
|
import NNG.Levels.AdvAddition.Level_12
|
||||||
|
import NNG.Levels.AdvAddition.Level_13
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Title "Advanced Addition World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 10
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 11
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 12
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 13
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 6
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 7
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 8
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvAddition"
|
||||||
|
Level 9
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
import NNG.Levels.AdvMultiplication.Level_1
|
||||||
|
import NNG.Levels.AdvMultiplication.Level_2
|
||||||
|
import NNG.Levels.AdvMultiplication.Level_3
|
||||||
|
import NNG.Levels.AdvMultiplication.Level_4
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvMultiplication"
|
||||||
|
Title "Advanced Multiplication World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvMultiplication"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvMultiplication"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvMultiplication"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvMultiplication"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
import NNG.Levels.AdvProposition.Level_1
|
||||||
|
import NNG.Levels.AdvProposition.Level_2
|
||||||
|
import NNG.Levels.AdvProposition.Level_3
|
||||||
|
import NNG.Levels.AdvProposition.Level_4
|
||||||
|
import NNG.Levels.AdvProposition.Level_5
|
||||||
|
import NNG.Levels.AdvProposition.Level_6
|
||||||
|
import NNG.Levels.AdvProposition.Level_7
|
||||||
|
import NNG.Levels.AdvProposition.Level_8
|
||||||
|
import NNG.Levels.AdvProposition.Level_9
|
||||||
|
import NNG.Levels.AdvProposition.Level_10
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Title "Advanced Proposition World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Prop) (p : P) (q : Q) : P ∧ Q := by
|
||||||
|
constructor
|
||||||
|
exact p
|
||||||
|
exact q
|
||||||
|
|
||||||
|
NewTactic constructor
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import Std.Tactic.RCases
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 10
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Prop) : (¬ Q → ¬ P) → (P → Q) := by
|
||||||
|
by_cases p : P
|
||||||
|
· by_cases q : Q
|
||||||
|
intro h p' -- cc
|
||||||
|
assumption
|
||||||
|
intro h p'
|
||||||
|
have g : ¬ P := h q
|
||||||
|
contradiction
|
||||||
|
· by_cases q : Q
|
||||||
|
intro h p
|
||||||
|
assumption
|
||||||
|
intro h p
|
||||||
|
contradiction
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import Std.Tactic.RCases
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
|
Statement and_symm
|
||||||
|
""
|
||||||
|
(P Q : Prop) : P ∧ Q → Q ∧ P := by
|
||||||
|
intro h
|
||||||
|
rcases h with ⟨p, q⟩
|
||||||
|
constructor
|
||||||
|
exact q
|
||||||
|
exact p
|
||||||
|
|
||||||
|
NewTactic rcases
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import Std.Tactic.RCases
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement and_trans
|
||||||
|
""
|
||||||
|
(P Q R : Prop) : P ∧ Q → Q ∧ R → P ∧ R := by
|
||||||
|
intro hpq
|
||||||
|
intro hqr
|
||||||
|
rcases hpq with ⟨p, q⟩
|
||||||
|
rcases hqr with ⟨q', r⟩
|
||||||
|
constructor
|
||||||
|
assumption
|
||||||
|
assumption
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import Std.Tactic.RCases
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement iff_trans
|
||||||
|
""
|
||||||
|
(P Q R : Prop) : (P ↔ Q) → (Q ↔ R) → (P ↔ R) := by
|
||||||
|
intro hpq
|
||||||
|
intro hqr
|
||||||
|
rcases hpq with ⟨hpq, hqp⟩
|
||||||
|
rcases hqr with ⟨hqr, hrq⟩
|
||||||
|
constructor
|
||||||
|
exact fun x => hqr (hpq x) -- cc
|
||||||
|
exact fun x => hqp (hrq x) -- cc
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import Std.Tactic.RCases
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement iff_trans
|
||||||
|
""
|
||||||
|
(P Q R : Prop) : (P ↔ Q) → (Q ↔ R) → (P ↔ R) := by
|
||||||
|
intro hpq hqr
|
||||||
|
constructor
|
||||||
|
intro p
|
||||||
|
apply hqr.1
|
||||||
|
apply hpq.1
|
||||||
|
assumption
|
||||||
|
intro r
|
||||||
|
apply hpq.2
|
||||||
|
apply hqr.2
|
||||||
|
assumption
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import Std.Tactic.RCases
|
||||||
|
import NNG.MyNat.Theorems.Proposition
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "AdvProposition"
|
||||||
|
Level 9
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement contra
|
||||||
|
""
|
||||||
|
(P Q : Prop) : (P ∧ ¬ P) → Q := by
|
||||||
|
intro h
|
||||||
|
rcases h with ⟨p, np ⟩
|
||||||
|
contradiction
|
||||||
|
-- rw [not_iff_imp_false] at np
|
||||||
|
-- exfalso
|
||||||
|
-- apply np
|
||||||
|
-- exact p
|
||||||
|
|
||||||
|
NewTactic exfalso contradiction
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
import NNG.Levels.Function.Level_1
|
||||||
|
import NNG.Levels.Function.Level_2
|
||||||
|
import NNG.Levels.Function.Level_3
|
||||||
|
import NNG.Levels.Function.Level_4
|
||||||
|
import NNG.Levels.Function.Level_5
|
||||||
|
import NNG.Levels.Function.Level_6
|
||||||
|
import NNG.Levels.Function.Level_7
|
||||||
|
import NNG.Levels.Function.Level_8
|
||||||
|
import NNG.Levels.Function.Level_9
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Title "Function World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Theorems.Addition
|
||||||
|
import NNG.MyNat.Multiplication
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
"If $P$ is true, and $P\\implies Q$ is also true, then $Q$ is true."
|
||||||
|
(P Q : Prop) (p : P) (h : P → Q) : Q := by
|
||||||
|
exact h p
|
||||||
|
|
||||||
|
NewTactic exact
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Theorems.Addition
|
||||||
|
import NNG.MyNat.Multiplication
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R S T U: Type) (p : P) (h : P → Q) (i : Q → R) (j : Q → T) (k : S → T) (l : T → U) :
|
||||||
|
U := by
|
||||||
|
have q := h p
|
||||||
|
have t : T := j q
|
||||||
|
have u : U := l t
|
||||||
|
exact u
|
||||||
|
|
||||||
|
NewTactic «have»
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Theorems.Addition
|
||||||
|
import NNG.MyNat.Multiplication
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R S T U: Type)
|
||||||
|
(p : P)
|
||||||
|
(h : P → Q)
|
||||||
|
(i : Q → R)
|
||||||
|
(j : Q → T)
|
||||||
|
(k : S → T)
|
||||||
|
(l : T → U) : U :=
|
||||||
|
by
|
||||||
|
apply l
|
||||||
|
apply j
|
||||||
|
apply h
|
||||||
|
exact p
|
||||||
|
|
||||||
|
NewTactic apply
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Theorems.Addition
|
||||||
|
import NNG.MyNat.Multiplication
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Type) : P → (Q → P) := by
|
||||||
|
intro p
|
||||||
|
intro q
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 6
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R : Type) : (P → (Q → R)) → ((P → Q) → (P → R)) := by
|
||||||
|
intro f
|
||||||
|
intro h
|
||||||
|
intro p
|
||||||
|
have j : Q → R := f p
|
||||||
|
apply j
|
||||||
|
apply h
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 7
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q F : Type) : (P → Q) → ((Q → F) → (P → F)) := by
|
||||||
|
intro f
|
||||||
|
intro h
|
||||||
|
intro p
|
||||||
|
apply h
|
||||||
|
apply f
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 8
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Type) : (P → Q) → ((Q → empty) → (P → empty)) := by
|
||||||
|
intros f h p
|
||||||
|
apply h
|
||||||
|
apply f
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Function"
|
||||||
|
Level 9
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(A B C D E F G H I J K L : Type)
|
||||||
|
(f1 : A → B) (f2 : B → E) (f3 : E → D) (f4 : D → A) (f5 : E → F)
|
||||||
|
(f6 : F → C) (f7 : B → C) (f8 : F → G) (f9 : G → J) (f10 : I → J)
|
||||||
|
(f11 : J → I) (f12 : I → H) (f13 : E → H) (f14 : H → K) (f15 : I → L) : A → L := by
|
||||||
|
intro a
|
||||||
|
apply f15
|
||||||
|
apply f11
|
||||||
|
apply f9
|
||||||
|
apply f8
|
||||||
|
apply f5
|
||||||
|
apply f2
|
||||||
|
apply f1
|
||||||
|
exact a
|
||||||
|
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import NNG.Levels.Inequality.Level_1
|
||||||
|
import NNG.Levels.Inequality.Level_2
|
||||||
|
import NNG.Levels.Inequality.Level_3
|
||||||
|
import NNG.Levels.Inequality.Level_4
|
||||||
|
import NNG.Levels.Inequality.Level_5
|
||||||
|
import NNG.Levels.Inequality.Level_6
|
||||||
|
import NNG.Levels.Inequality.Level_7
|
||||||
|
import NNG.Levels.Inequality.Level_8
|
||||||
|
import NNG.Levels.Inequality.Level_9
|
||||||
|
import NNG.Levels.Inequality.Level_10
|
||||||
|
import NNG.Levels.Inequality.Level_11
|
||||||
|
import NNG.Levels.Inequality.Level_12
|
||||||
|
import NNG.Levels.Inequality.Level_13
|
||||||
|
import NNG.Levels.Inequality.Level_14
|
||||||
|
import NNG.Levels.Inequality.Level_15
|
||||||
|
import NNG.Levels.Inequality.Level_16
|
||||||
|
import NNG.Levels.Inequality.Level_17
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Title "Inequality World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 10
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 11
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 12
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 13
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 14
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 15
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 16
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 17
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 6
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 7
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 8
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Inequality"
|
||||||
|
Level 9
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
import NNG.Levels.Multiplication.Level_1
|
||||||
|
import NNG.Levels.Multiplication.Level_2
|
||||||
|
import NNG.Levels.Multiplication.Level_3
|
||||||
|
import NNG.Levels.Multiplication.Level_4
|
||||||
|
import NNG.Levels.Multiplication.Level_5
|
||||||
|
import NNG.Levels.Multiplication.Level_6
|
||||||
|
import NNG.Levels.Multiplication.Level_7
|
||||||
|
import NNG.Levels.Multiplication.Level_8
|
||||||
|
import NNG.Levels.Multiplication.Level_9
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Title "Multiplication World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 6
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 7
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 8
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Multiplication"
|
||||||
|
Level 9
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
import NNG.Levels.Power.Level_1
|
||||||
|
import NNG.Levels.Power.Level_2
|
||||||
|
import NNG.Levels.Power.Level_3
|
||||||
|
import NNG.Levels.Power.Level_4
|
||||||
|
import NNG.Levels.Power.Level_5
|
||||||
|
import NNG.Levels.Power.Level_6
|
||||||
|
import NNG.Levels.Power.Level_7
|
||||||
|
import NNG.Levels.Power.Level_8
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Title "Power World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 6
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 7
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Power"
|
||||||
|
Level 8
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: true := by
|
||||||
|
trivial
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
import NNG.Levels.Proposition.Level_1
|
||||||
|
import NNG.Levels.Proposition.Level_2
|
||||||
|
import NNG.Levels.Proposition.Level_3
|
||||||
|
import NNG.Levels.Proposition.Level_4
|
||||||
|
import NNG.Levels.Proposition.Level_5
|
||||||
|
import NNG.Levels.Proposition.Level_6
|
||||||
|
import NNG.Levels.Proposition.Level_7
|
||||||
|
import NNG.Levels.Proposition.Level_8
|
||||||
|
-- import NNG.Levels.Proposition.Level_9 -- `cc` is not ported
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Title "Proposition World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 1
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Prop) (p : P) (h : P → Q) : Q := by
|
||||||
|
exact h p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 2
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
: P → P := by
|
||||||
|
intro p
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 3
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R S T U: Prop) (p : P) (h : P → Q) (i : Q → R)
|
||||||
|
(j : Q → T) (k : S → T) (l : T → U) : U := by
|
||||||
|
have q := h p
|
||||||
|
have t := j q
|
||||||
|
have u := l t
|
||||||
|
exact u
|
||||||
|
|
||||||
|
DisabledTactic apply
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 4
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R S T U: Prop) (p : P) (h : P → Q) (i : Q → R)
|
||||||
|
(j : Q → T) (k : S → T) (l : T → U) : U := by
|
||||||
|
apply l
|
||||||
|
apply j
|
||||||
|
apply h
|
||||||
|
exact p
|
||||||
|
|
||||||
|
DisabledTactic «have»
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 5
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Prop) : P → (Q → P) := by
|
||||||
|
intro p
|
||||||
|
intro q
|
||||||
|
exact p
|
||||||
|
rfl
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 6
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R : Prop) : (P → (Q → R)) → ((P → Q) → (P → R)) := by
|
||||||
|
intro f
|
||||||
|
intro h
|
||||||
|
intro p
|
||||||
|
have j : Q → R := f p
|
||||||
|
apply j
|
||||||
|
apply h
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 7
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q R : Prop) : (P → Q) → ((Q → R) → (P → R)) := by
|
||||||
|
intro hpq hqr
|
||||||
|
intro p
|
||||||
|
apply hqr
|
||||||
|
apply hpq
|
||||||
|
exact p
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import NNG.MyNat.Theorems.Proposition
|
||||||
|
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 8
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(P Q : Prop) : (P → Q) → (¬ Q → ¬ P) := by
|
||||||
|
rw [not_iff_imp_false]
|
||||||
|
rw [not_iff_imp_false]
|
||||||
|
intro f
|
||||||
|
intro h
|
||||||
|
intro p
|
||||||
|
apply h
|
||||||
|
apply f
|
||||||
|
exact p
|
||||||
|
|
||||||
|
NewLemma not_iff_imp_false
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
import NNG.Metadata
|
||||||
|
import NNG.MyNat.Addition
|
||||||
|
import NNG.MyNat.Theorems.Proposition
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Proposition"
|
||||||
|
Level 9
|
||||||
|
Title ""
|
||||||
|
|
||||||
|
open MyNat
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement
|
||||||
|
""
|
||||||
|
(A B C D E F G H I J K L : Prop)
|
||||||
|
(f1 : A → B) (f2 : B → E) (f3 : E → D) (f4 : D → A) (f5 : E → F)
|
||||||
|
(f6 : F → C) (f7 : B → C) (f8 : F → G) (f9 : G → J) (f10 : I → J)
|
||||||
|
(f11 : J → I) (f12 : I → H) (f13 : E → H) (f14 : H → K) (f15 : I → L) : A → L := by
|
||||||
|
-- cc -- TODO: `cc` is not ported yet.
|
||||||
|
sorry
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
|
||||||
|
"
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
import NNG.Levels.Tutorial.Level_1
|
||||||
|
import NNG.Levels.Tutorial.Level_2
|
||||||
|
import NNG.Levels.Tutorial.Level_3
|
||||||
|
import NNG.Levels.Tutorial.Level_4
|
||||||
|
|
||||||
|
Game "NNG"
|
||||||
|
World "Tutorial"
|
||||||
|
Title "Tutorial World"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue