big refactor
This commit is contained in:
@@ -25,4 +25,4 @@ RUN lake clean && lake build
|
||||
|
||||
WORKDIR /game/lake-packages/GameServer/server/build/bin/
|
||||
|
||||
CMD ./gameserver --server /game/ NNG NNG
|
||||
CMD ./gameserver --server /game/ Game Game
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
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
|
||||
import Game.Levels.Tutorial
|
||||
import Game.Levels.Addition
|
||||
import Game.Levels.Multiplication
|
||||
import Game.Levels.Power
|
||||
import Game.Levels.Function
|
||||
import Game.Levels.Proposition
|
||||
import Game.Levels.AdvProposition
|
||||
import Game.Levels.AdvAddition
|
||||
import Game.Levels.AdvMultiplication
|
||||
--import Game.Levels.Inequality
|
||||
|
||||
Game "NNG"
|
||||
Title "Natural Number Game"
|
||||
88
Game/Doc/Definitions.lean
Normal file
88
Game/Doc/Definitions.lean
Normal file
@@ -0,0 +1,88 @@
|
||||
import GameServer.Commands
|
||||
|
||||
-- DefinitionDoc MyNat as "ℕ"
|
||||
-- "
|
||||
-- The Natural Numbers. These are constructed through:
|
||||
|
||||
-- * `(0 : ℕ)`, an element called zero.
|
||||
-- * `(succ : ℕ → ℕ)`, the successor function , i.e. one is `succ 0` and two is `succ (succ 0)`.
|
||||
-- * `induction` (or `rcases`), tactics to treat the cases $n = 0$ and `n = m + 1` seperately.
|
||||
|
||||
-- ## Game Modifications
|
||||
|
||||
-- This notation is for our own version of the natural numbers, called `MyNat`.
|
||||
-- The natural numbers implemented in Lean's core are called `Nat`.
|
||||
|
||||
-- If you end up getting someting of type `Nat` in this game, you probably
|
||||
-- need to write `(4 : ℕ)` to force it to be of type `MyNat`.
|
||||
|
||||
-- *Write with `\\N`.*
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc Add as "+" "
|
||||
-- Addition on `ℕ` is defined through two axioms:
|
||||
|
||||
-- * `add_zero (a : ℕ) : a + 0 = a`
|
||||
-- * `add_succ (a d : ℕ) : a + succ d = succ (a + d)`
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc Pow as "^" "
|
||||
-- Power on `ℕ` is defined through two axioms:
|
||||
|
||||
-- * `pow_zero (a : ℕ) : a ^ 0 = 1`
|
||||
-- * `pow_succ (a b : ℕ) : a ^ succ b = a ^ b * a`
|
||||
|
||||
-- ## Game-specific notes
|
||||
|
||||
-- Note that you might need to manually specify the type of the first number:
|
||||
|
||||
-- ```
|
||||
-- (2 : ℕ) ^ 1
|
||||
-- ```
|
||||
|
||||
-- If you write `2 ^ 1` then lean will try to work in it's inbuild `Nat`, not in
|
||||
-- the game's natural numbers `MyNat`.
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc One as "1" "
|
||||
-- `1 : ℕ` is by definition `succ 0`. Use `one_eq_succ_zero`
|
||||
-- to change between the two.
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc False as "False" "
|
||||
-- `False` is a proposition that that is always false, in contrast to `True` which is always true.
|
||||
|
||||
-- A proof of `False`, i.e. `(h : False)` is used to implement a contradiction: From a proof of `False`
|
||||
-- anything follows, *ad absurdum*.
|
||||
|
||||
-- For example, \"not\" (`¬ A`) is therefore implemented as `A → False`.
|
||||
-- (\"If `A` is true then we have a contradiction.\")
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc Not as "¬" "
|
||||
-- Logical \"not\" is implemented as `¬ A := A → False`.
|
||||
|
||||
-- *Write with `\\n`.*
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc And as "∧" "
|
||||
-- (missing)
|
||||
|
||||
-- *Write with `\\and`.*
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc Or as "∨" "
|
||||
-- (missing)
|
||||
|
||||
-- *Write with `\\or`.*
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc Iff as "↔" "
|
||||
-- (missing)
|
||||
|
||||
-- *Write with `\\iff`.*
|
||||
-- "
|
||||
|
||||
-- DefinitionDoc Mul as "*" ""
|
||||
|
||||
-- DefinitionDoc Ne as "≠" ""
|
||||
190
Game/Doc/Tactics.lean
Normal file
190
Game/Doc/Tactics.lean
Normal file
@@ -0,0 +1,190 @@
|
||||
import GameServer.Commands
|
||||
|
||||
-- TacticDoc rfl
|
||||
-- "
|
||||
-- ## Summary
|
||||
|
||||
-- `rfl` proves goals of the form `X = X`.
|
||||
|
||||
-- ## Details
|
||||
|
||||
-- The `rfl` tactic will close any goal of the form `A = B`
|
||||
-- where `A` and `B` are *exactly the same thing*.
|
||||
|
||||
-- ## Example:
|
||||
-- If it looks like this in the top right hand box:
|
||||
-- ```
|
||||
-- Objects:
|
||||
-- a b c d : ℕ
|
||||
-- Goal:
|
||||
-- (a + b) * (c + d) = (a + b) * (c + d)
|
||||
-- ```
|
||||
|
||||
-- then `rfl` will close the goal and solve the level.
|
||||
|
||||
-- ## Game modifications
|
||||
-- `rfl` in this game is weakened.
|
||||
|
||||
-- The real `rfl` could also proof goals of the form `A = B` where the
|
||||
-- two sides are not *exactly identical* but merely
|
||||
-- *\"definitionally equal\"*. That means the real `rfl`
|
||||
-- could prove things like `a + 0 = a`.
|
||||
|
||||
-- "
|
||||
|
||||
|
||||
-- TacticDoc rw
|
||||
-- "
|
||||
-- ## Summary
|
||||
|
||||
-- If `h` is a proof of `X = Y`, then `rw [h]` will change
|
||||
-- all `X`s in the goal to `Y`s.
|
||||
|
||||
-- ### Variants
|
||||
|
||||
-- * `rw [← h]` (changes `Y` to `X`)
|
||||
-- * `rw [h] at h2` (changes `X` to `Y` in hypothesis `h2` instead of the goal)
|
||||
-- * `rw [h] at *` (changes `X` to `Y` in the goal and all hypotheses)
|
||||
|
||||
-- ## Details
|
||||
|
||||
-- The `rw` tactic is a way to do \"substituting in\". There
|
||||
-- are two distinct situations where use this tactics.
|
||||
|
||||
-- 1) If `h : A = B` is a hypothesis (i.e., a proof of `A = B`)
|
||||
-- in your local context (the box in the top right)
|
||||
-- and if your goal contains one or more `A`s, then `rw [h]`
|
||||
-- will change them all to `B`'s.
|
||||
|
||||
-- 2) The `rw` tactic will also work with proofs of theorems
|
||||
-- which are equalities (look for them in the drop down
|
||||
-- menu on the left, within Theorem Statements).
|
||||
-- For example, in world 1 level 4
|
||||
-- we learn about `add_zero x : x + 0 = x`, and `rw [add_zero]`
|
||||
-- will change `x + 0` into `x` in your goal (or fail with
|
||||
-- an error if Lean cannot find `x + 0` in the goal).
|
||||
|
||||
-- Important note: if `h` is not a proof of the form `A = B`
|
||||
-- or `A ↔ B` (for example if `h` is a function, an implication,
|
||||
-- or perhaps even a proposition itself rather than its proof),
|
||||
-- then `rw` is not the tactic you want to use. For example,
|
||||
-- `rw (P = Q)` is never correct: `P = Q` is the true-false
|
||||
-- statement itself, not the proof.
|
||||
-- If `h : P = Q` is its proof, then `rw [h]` will work.
|
||||
|
||||
-- Pro tip 1: If `h : A = B` and you want to change
|
||||
-- `B`s to `A`s instead, try `rw ←h` (get the arrow with `\\l` and
|
||||
-- note that this is a small letter L, not a number 1).
|
||||
|
||||
-- ### Example:
|
||||
-- If it looks like this in the top right hand box:
|
||||
|
||||
-- ```
|
||||
-- Objects:
|
||||
-- x y : ℕ
|
||||
-- Assumptions:
|
||||
-- h : x = y + y
|
||||
-- Goal:
|
||||
-- succ (x + 0) = succ (y + y)
|
||||
-- ```
|
||||
|
||||
-- then
|
||||
|
||||
-- `rw [add_zero]`
|
||||
|
||||
-- will change the goal into `succ x = succ (y + y)`, and then
|
||||
|
||||
-- `rw [h]`
|
||||
|
||||
-- will change the goal into `succ (y + y) = succ (y + y)`, which
|
||||
-- can be solved with `rfl`.
|
||||
|
||||
-- ### Example:
|
||||
|
||||
-- You can use `rw` to change a hypothesis as well.
|
||||
-- For example, if your local context looks like this:
|
||||
|
||||
-- ```
|
||||
-- Objects:
|
||||
-- x y : ℕ
|
||||
-- Assumptions:
|
||||
-- h1 : x = y + 3
|
||||
-- h2 : 2 * y = x
|
||||
-- Goal:
|
||||
-- y = 3
|
||||
-- ```
|
||||
-- then `rw [h1] at h2` will turn `h2` into `h2 : 2 * y = y + 3`.
|
||||
|
||||
-- ## Game modifications
|
||||
|
||||
-- The real `rw` tactic does automatically try to call `rfl` afterwards. We disabled this
|
||||
-- feature for the game.
|
||||
-- "
|
||||
|
||||
-- TacticDoc induction
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc exact
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc apply
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc intro
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc «have»
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc constructor
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc rcases
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc left
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc revert
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc tauto
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc use
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc right
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc by_cases
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc contradiction
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc exfalso
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc simp
|
||||
-- "
|
||||
-- "
|
||||
|
||||
-- TacticDoc «repeat»
|
||||
-- "
|
||||
-- "
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Addition.Level_6
|
||||
import Game.Levels.Addition.Level_6
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
@@ -1,11 +1,12 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
Level 1
|
||||
Title "the induction tactic."
|
||||
|
||||
--namespace MyNat
|
||||
open MyNat
|
||||
|
||||
Introduction
|
||||
@@ -33,7 +34,6 @@ To prove `0 + n = n` we need to use induction on $n$. While we're here,
|
||||
note that `zero_add` is about zero add something, and `add_zero` is about something add zero.
|
||||
The names of the proofs tell you what the theorems are. Anyway, let's prove `0 + n = n`.
|
||||
"
|
||||
|
||||
Statement MyNat.zero_add
|
||||
"For all natural numbers $n$, we have $0 + n = n$."
|
||||
(n : ℕ) : 0 + n = n := by
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Addition.Level_1
|
||||
import Game.Levels.Addition.Level_1
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Addition.Level_2
|
||||
import Game.Levels.Addition.Level_2
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Addition.Level_3
|
||||
import Game.Levels.Addition.Level_3
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Addition.Level_4
|
||||
import Game.Levels.Addition.Level_4
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Addition.Level_5
|
||||
import Game.Levels.Addition.Level_5
|
||||
|
||||
Game "NNG"
|
||||
World "Addition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_13
|
||||
import Game.Levels.AdvAddition.Level_13
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.AdvAddition
|
||||
import NNG.Levels.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.AdvAddition
|
||||
import Game.Levels.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_9
|
||||
import Game.Levels.AdvAddition.Level_9
|
||||
import Std.Tactic.RCases
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_10
|
||||
import Game.Levels.AdvAddition.Level_10
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_11
|
||||
import Game.Levels.AdvAddition.Level_11
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_12
|
||||
import Game.Levels.AdvAddition.Level_12
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_1
|
||||
import Game.Levels.AdvAddition.Level_1
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_2
|
||||
import Game.Levels.AdvAddition.Level_2
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_3
|
||||
import Game.Levels.AdvAddition.Level_3
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_4
|
||||
import Game.Levels.AdvAddition.Level_4
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_5
|
||||
import Game.Levels.AdvAddition.Level_5
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_6
|
||||
import Game.Levels.AdvAddition.Level_6
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_7
|
||||
import Game.Levels.AdvAddition.Level_7
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvAddition.Level_8
|
||||
import Game.Levels.AdvAddition.Level_8
|
||||
|
||||
Game "NNG"
|
||||
World "AdvAddition"
|
||||
@@ -1,7 +1,7 @@
|
||||
import NNG.Levels.AdvMultiplication.Level_1
|
||||
import NNG.Levels.AdvMultiplication.Level_2
|
||||
import NNG.Levels.AdvMultiplication.Level_3
|
||||
import NNG.Levels.AdvMultiplication.Level_4
|
||||
import Game.Levels.AdvMultiplication.Level_1
|
||||
import Game.Levels.AdvMultiplication.Level_2
|
||||
import Game.Levels.AdvMultiplication.Level_3
|
||||
import Game.Levels.AdvMultiplication.Level_4
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Levels.Multiplication
|
||||
import NNG.Levels.AdvAddition
|
||||
import Game.Levels.Multiplication
|
||||
import Game.Levels.AdvAddition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvMultiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvMultiplication.Level_1
|
||||
import Game.Levels.AdvMultiplication.Level_1
|
||||
|
||||
Game "NNG"
|
||||
World "AdvMultiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvMultiplication.Level_2
|
||||
import Game.Levels.AdvMultiplication.Level_2
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.AdvMultiplication.Level_3
|
||||
import Game.Levels.AdvMultiplication.Level_3
|
||||
|
||||
Game "NNG"
|
||||
World "AdvMultiplication"
|
||||
23
Game/Levels/AdvProposition.lean
Normal file
23
Game/Levels/AdvProposition.lean
Normal file
@@ -0,0 +1,23 @@
|
||||
import Game.Levels.AdvProposition.Level_1
|
||||
import Game.Levels.AdvProposition.Level_2
|
||||
import Game.Levels.AdvProposition.Level_3
|
||||
import Game.Levels.AdvProposition.Level_4
|
||||
import Game.Levels.AdvProposition.Level_5
|
||||
import Game.Levels.AdvProposition.Level_6
|
||||
import Game.Levels.AdvProposition.Level_7
|
||||
import Game.Levels.AdvProposition.Level_8
|
||||
import Game.Levels.AdvProposition.Level_9
|
||||
import Game.Levels.AdvProposition.Level_10
|
||||
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
Title "Advanced Proposition World"
|
||||
|
||||
Introduction
|
||||
"
|
||||
In this world we will learn five key tactics needed to solve all the
|
||||
levels of the Natural Number Game, namely `constructor`, `rcases`, `left`, `right`, and `exfalso`.
|
||||
These, and `use` (which we'll get to in Inequality World) are all the
|
||||
tactics you will need to beat all the levels of the game.
|
||||
"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -62,4 +62,3 @@ Get to it via the main menu.
|
||||
|
||||
-- In fact the tactic `tauto` just kills this goal (and many other logic goals) immediately. You'll be
|
||||
-- able to use it from now on.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -46,4 +46,3 @@ Statement -- and_symm
|
||||
exact p
|
||||
|
||||
NewTactic rcases
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -36,4 +36,3 @@ Statement
|
||||
|
||||
NewTactic left right
|
||||
NewDefinition Or
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "AdvProposition"
|
||||
@@ -1,12 +1,12 @@
|
||||
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
|
||||
import Game.Levels.Function.Level_1
|
||||
import Game.Levels.Function.Level_2
|
||||
import Game.Levels.Function.Level_3
|
||||
import Game.Levels.Function.Level_4
|
||||
import Game.Levels.Function.Level_5
|
||||
import Game.Levels.Function.Level_6
|
||||
import Game.Levels.Function.Level_7
|
||||
import Game.Levels.Function.Level_8
|
||||
import Game.Levels.Function.Level_9
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
-- TODO: Cannot import level from different world.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Multiplication
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Multiplication
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Metadata
|
||||
import Game.Metadata
|
||||
|
||||
Game "NNG"
|
||||
World "Function"
|
||||
@@ -1,20 +1,20 @@
|
||||
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
|
||||
import Game.Levels.Inequality.Level_1
|
||||
-- import Game.Levels.Inequality.Level_2
|
||||
-- import Game.Levels.Inequality.Level_3
|
||||
-- import Game.Levels.Inequality.Level_4
|
||||
-- import Game.Levels.Inequality.Level_5
|
||||
-- import Game.Levels.Inequality.Level_6
|
||||
-- import Game.Levels.Inequality.Level_7
|
||||
-- import Game.Levels.Inequality.Level_8
|
||||
-- import Game.Levels.Inequality.Level_9
|
||||
-- import Game.Levels.Inequality.Level_10
|
||||
-- import Game.Levels.Inequality.Level_11
|
||||
-- import Game.Levels.Inequality.Level_12
|
||||
-- import Game.Levels.Inequality.Level_13
|
||||
-- import Game.Levels.Inequality.Level_14
|
||||
-- import Game.Levels.Inequality.Level_15
|
||||
-- import Game.Levels.Inequality.Level_16
|
||||
-- import Game.Levels.Inequality.Level_17
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
--import Mathlib.Tactic.Ring
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Mathlib.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
import Std.Tactic.RCases
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,6 +1,6 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.LE
|
||||
import NNG.Tactic.Use
|
||||
import Game.Metadata
|
||||
import Game.MyNat.LE
|
||||
import Game.Tactic.Use
|
||||
|
||||
Game "NNG"
|
||||
World "Inequality"
|
||||
@@ -1,12 +1,12 @@
|
||||
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
|
||||
import Game.Levels.Multiplication.Level_1
|
||||
import Game.Levels.Multiplication.Level_2
|
||||
import Game.Levels.Multiplication.Level_3
|
||||
import Game.Levels.Multiplication.Level_4
|
||||
import Game.Levels.Multiplication.Level_5
|
||||
import Game.Levels.Multiplication.Level_6
|
||||
import Game.Levels.Multiplication.Level_7
|
||||
import Game.Levels.Multiplication.Level_8
|
||||
import Game.Levels.Multiplication.Level_9
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.MyNat.Multiplication
|
||||
import NNG.Levels.Addition
|
||||
import Game.MyNat.Multiplication
|
||||
import Game.Levels.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_1
|
||||
import Game.Levels.Multiplication.Level_1
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_2
|
||||
import Game.Levels.Multiplication.Level_2
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_3
|
||||
import Game.Levels.Multiplication.Level_3
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_4
|
||||
import Game.Levels.Multiplication.Level_4
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_5
|
||||
import Game.Levels.Multiplication.Level_5
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_6
|
||||
import Game.Levels.Multiplication.Level_6
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_7
|
||||
import Game.Levels.Multiplication.Level_7
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Multiplication.Level_8
|
||||
import Game.Levels.Multiplication.Level_8
|
||||
|
||||
Game "NNG"
|
||||
World "Multiplication"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_8
|
||||
import Game.Levels.Power.Level_8
|
||||
|
||||
Game "NNG"
|
||||
World "Power"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Levels.Multiplication
|
||||
import NNG.MyNat.Power
|
||||
import Game.Levels.Multiplication
|
||||
import Game.MyNat.Power
|
||||
|
||||
Game "NNG"
|
||||
World "Power"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_1
|
||||
import Game.Levels.Power.Level_1
|
||||
|
||||
Game "NNG"
|
||||
World "Power"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_2
|
||||
import Game.Levels.Power.Level_2
|
||||
|
||||
Game "NNG"
|
||||
World "Power"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_3
|
||||
import Game.Levels.Power.Level_3
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_4
|
||||
import Game.Levels.Power.Level_4
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_5
|
||||
import Game.Levels.Power.Level_5
|
||||
|
||||
Game "NNG"
|
||||
World "Power"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_6
|
||||
import Game.Levels.Power.Level_6
|
||||
|
||||
Game "NNG"
|
||||
World "Power"
|
||||
@@ -1,4 +1,4 @@
|
||||
import NNG.Levels.Power.Level_7
|
||||
import Game.Levels.Power.Level_7
|
||||
-- import Mathlib.Tactic.Ring
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,12 +1,12 @@
|
||||
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
|
||||
import Game.Levels.Proposition.Level_1
|
||||
import Game.Levels.Proposition.Level_2
|
||||
import Game.Levels.Proposition.Level_3
|
||||
import Game.Levels.Proposition.Level_4
|
||||
import Game.Levels.Proposition.Level_5
|
||||
import Game.Levels.Proposition.Level_6
|
||||
import Game.Levels.Proposition.Level_7
|
||||
import Game.Levels.Proposition.Level_8
|
||||
import Game.Levels.Proposition.Level_9 -- `cc` is not ported
|
||||
|
||||
|
||||
Game "NNG"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -24,4 +24,3 @@ Statement
|
||||
apply hqr
|
||||
apply hpq
|
||||
exact p
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Addition
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Addition
|
||||
|
||||
Game "NNG"
|
||||
World "Proposition"
|
||||
@@ -1,7 +1,7 @@
|
||||
import NNG.Levels.Tutorial.Level_1
|
||||
import NNG.Levels.Tutorial.Level_2
|
||||
import NNG.Levels.Tutorial.Level_3
|
||||
import NNG.Levels.Tutorial.Level_4
|
||||
import Game.Levels.Tutorial.Level_1
|
||||
import Game.Levels.Tutorial.Level_2
|
||||
import Game.Levels.Tutorial.Level_3
|
||||
import Game.Levels.Tutorial.Level_4
|
||||
|
||||
Game "NNG"
|
||||
World "Tutorial"
|
||||
@@ -1,5 +1,5 @@
|
||||
import NNG.Metadata
|
||||
import NNG.MyNat.Multiplication
|
||||
import Game.Metadata
|
||||
import Game.MyNat.Multiplication
|
||||
|
||||
Game "NNG"
|
||||
World "Tutorial"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user