merge necessary as upstream developed while storyline slept
commit
71904d5460
@ -0,0 +1,52 @@
|
|||||||
|
import { faShield } from '@fortawesome/free-solid-svg-icons';
|
||||||
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||||
|
import * as React from 'react'
|
||||||
|
|
||||||
|
const PrivacyPolicy: React.FC = () => {
|
||||||
|
const [open, setOpen] = React.useState(false);
|
||||||
|
const handleOpen = () => setOpen(true);
|
||||||
|
const handleClose = () => setOpen(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<span>
|
||||||
|
<div className="privacy" onClick={handleOpen} title="Privacy Policy & Impressum">
|
||||||
|
<FontAwesomeIcon icon={faShield} />
|
||||||
|
<p className="p1">legal</p>
|
||||||
|
<p className="p2">notes</p>
|
||||||
|
</div>
|
||||||
|
{open?
|
||||||
|
<div className="modal-wrapper">
|
||||||
|
<div className="modal-backdrop" onClick={handleClose} />
|
||||||
|
<div className="modal">
|
||||||
|
<div className="codicon codicon-close modal-close" onClick={handleClose}></div>
|
||||||
|
<h2>Privacy Policy & Impressum</h2>
|
||||||
|
|
||||||
|
<p>Our server collects metadata (such as IP address, browser, operating system)
|
||||||
|
and the data that the user enters into the editor. The data is used to
|
||||||
|
compute the Lean output and display it to the user. The information will be stored
|
||||||
|
as long as the user stays on our website and will be deleted immediately afterwards.
|
||||||
|
We keep logs to improve our software, but the contained data is anonymized.</p>
|
||||||
|
|
||||||
|
<p>We do not use cookies, but your game progress is stored in the browser
|
||||||
|
as site data. Your game progress is not saved on the server; if you delete
|
||||||
|
your browser storage, it is completely gone.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>Our server is located in Germany.</p>
|
||||||
|
|
||||||
|
<p><strong>Contact information:</strong><br />
|
||||||
|
Jon Eugster<br />
|
||||||
|
Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf<br />
|
||||||
|
Universitätsstr. 1<br />
|
||||||
|
40225 Düsseldorf<br />
|
||||||
|
Germany<br />
|
||||||
|
<a href="mailto:jon.eugster@hhu.de">jon.eugster@hhu.de</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div> : null}
|
||||||
|
</span>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default PrivacyPolicy
|
||||||
@ -1,12 +1,191 @@
|
|||||||
|
|
||||||
svg .world-circle {
|
/* svg .world-circle {
|
||||||
fill: var(--clr-primary)
|
fill: var(--clr-primary)
|
||||||
|
} */
|
||||||
|
|
||||||
|
.welcome {
|
||||||
|
height: 100%;
|
||||||
|
flex: 1;
|
||||||
|
min-height: 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-content {
|
||||||
|
height: 100%
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome .column {
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-text {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
margin: .67em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.1em;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5, h6 {
|
||||||
|
font-size: 1em;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***************/
|
||||||
|
/* SVG Graphic */
|
||||||
|
/***************/
|
||||||
|
|
||||||
|
svg .world-title-wrapper {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg .world-title-wrapper div {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg .world-title-wrapper div {
|
||||||
|
display: flex;
|
||||||
|
align-items:center;
|
||||||
|
justify-content:center;
|
||||||
|
overflow: visible;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
svg .world-name {
|
svg .world-title {
|
||||||
fill: white;
|
|
||||||
font-size: 2px;
|
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
text-anchor: middle;
|
color: white;
|
||||||
dominant-baseline: middle;
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************/
|
||||||
|
/* Privacy Button */
|
||||||
|
/******************/
|
||||||
|
|
||||||
|
.privacy {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
font-size: 25px;
|
||||||
|
border-radius: 20px;
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
bottom: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items:center;
|
||||||
|
justify-content:center;
|
||||||
|
color: #aaa;
|
||||||
|
background-color: #eee;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy p {
|
||||||
|
position: absolute;
|
||||||
|
color: #888;
|
||||||
|
bottom: 1.5px;
|
||||||
|
font-size: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy .p1 {
|
||||||
|
transform: rotate(50deg);
|
||||||
|
left: 1.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy .p2 {
|
||||||
|
transform: rotate(-50deg);
|
||||||
|
right: 1.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************/
|
||||||
|
/* Privacy Popup */
|
||||||
|
/*****************/
|
||||||
|
|
||||||
|
.modal-wrapper {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-backdrop {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.25);
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal h2 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
min-width: 50%;
|
||||||
|
max-width: 60ch;
|
||||||
|
background: #fff;
|
||||||
|
z-index: 3;
|
||||||
|
padding: 2em;
|
||||||
|
border-radius: 1em;
|
||||||
|
text-align: left;
|
||||||
|
color: var(--vscode-breadcrumb-foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal input[type="text"] {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal .form-error {
|
||||||
|
color: #a00;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal input[type="submit"] {
|
||||||
|
border: none;
|
||||||
|
color: var(--vscode-button-foreground);
|
||||||
|
background: var(--vscode-button-background);
|
||||||
|
cursor: pointer;
|
||||||
|
padding: .5em 1em;
|
||||||
|
border-radius: .2em;
|
||||||
|
display: block;
|
||||||
|
margin: 1em auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-close {
|
||||||
|
float: right;
|
||||||
|
scale: 2;
|
||||||
|
color: var(--vscode-breadcrumb-foreground);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-close:hover {
|
||||||
|
float: right;
|
||||||
|
scale: 2;
|
||||||
|
color: var(--vscode-breadcrumb-focusForeground);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal table {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,44 @@
|
|||||||
|
import Adam.Metadata
|
||||||
|
|
||||||
|
import Adam.Levels.Proposition
|
||||||
|
import Adam.Levels.Implication
|
||||||
|
import Adam.Levels.Predicate
|
||||||
|
import Adam.Levels.Contradiction
|
||||||
|
-- import Adam.Levels.Prime
|
||||||
|
import Adam.Levels.Sum
|
||||||
|
-- import Adam.Levels.Induction
|
||||||
|
|
||||||
|
import Adam.Levels.Numbers
|
||||||
|
import Adam.Levels.Inequality
|
||||||
|
|
||||||
|
import Adam.Levels.Lean
|
||||||
|
import Adam.Levels.SetTheory
|
||||||
|
import Adam.Levels.Function
|
||||||
|
import Adam.Levels.SetFunction
|
||||||
|
import Adam.Levels.LinearAlgebra
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
Title "Lean 4 game"
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"Fertig!"
|
||||||
|
|
||||||
|
|
||||||
|
Path Proposition → Implication → Predicate → Predicate → Contradiction → Sum → Lean
|
||||||
|
Path Predicate → Inequality → Sum
|
||||||
|
-- Path Inequality → Prime
|
||||||
|
-- Path Sum → Inequality -- → Induction
|
||||||
|
|
||||||
|
Path Lean → SetTheory → SetTheory2 → SetFunction → Module
|
||||||
|
Path Lean → Function → SetFunction
|
||||||
|
|
||||||
|
|
||||||
|
Path SetTheory2 → Numbers
|
||||||
|
Path Module → Basis → Module2
|
||||||
|
|
||||||
|
MakeGame
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
import Adam.Levels.Contradiction.L01_Have
|
||||||
|
import Adam.Levels.Contradiction.L02_Suffices
|
||||||
|
import Adam.Levels.Contradiction.L03_ByContra
|
||||||
|
import Adam.Levels.Contradiction.L04_ByContra
|
||||||
|
import Adam.Levels.Contradiction.L05_Contrapose
|
||||||
|
import Adam.Levels.Contradiction.L06_Summary
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Contradiction"
|
||||||
|
Title "Widerspruch"
|
||||||
|
|
||||||
|
Introduction "
|
||||||
|
Ihr begebt euch auf die Suche nach *Oddeus*. Nach etwas rumfragen, kommt ihr tatsächlich an
|
||||||
|
eine Dornenfestung und nachdem ihr erklärt habt, wer ihr seit, werdet ihr auf eine Audienz
|
||||||
|
gebeten.
|
||||||
|
"
|
||||||
@ -1,13 +1,13 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.LeftRight
|
import Mathlib.Tactic.LeftRight
|
||||||
import Mathlib.Tactic.Contrapose
|
import Mathlib.Tactic.Contrapose
|
||||||
import Mathlib.Tactic.Use
|
import Mathlib.Tactic.Use
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
import TestGame.ToBePorted
|
import Adam.ToBePorted
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Contradiction"
|
World "Contradiction"
|
||||||
Level 1
|
Level 1
|
||||||
|
|
||||||
@ -1,13 +1,13 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.LeftRight
|
import Mathlib.Tactic.LeftRight
|
||||||
import Mathlib.Tactic.Contrapose
|
import Mathlib.Tactic.Contrapose
|
||||||
import Mathlib.Tactic.Use
|
import Mathlib.Tactic.Use
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
import TestGame.ToBePorted
|
import Adam.ToBePorted
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Contradiction"
|
World "Contradiction"
|
||||||
Level 2
|
Level 2
|
||||||
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.Contrapose
|
import Mathlib.Tactic.Contrapose
|
||||||
import Mathlib.Tactic.Use
|
import Mathlib.Tactic.Use
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
import TestGame.ToBePorted
|
import Adam.ToBePorted
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Contradiction"
|
World "Contradiction"
|
||||||
Level 5
|
Level 5
|
||||||
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.Contrapose
|
import Mathlib.Tactic.Contrapose
|
||||||
import Mathlib.Tactic.Use
|
import Mathlib.Tactic.Use
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
import TestGame.ToBePorted
|
import Adam.ToBePorted
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Contradiction"
|
World "Contradiction"
|
||||||
Level 6
|
Level 6
|
||||||
|
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import Adam.Levels.Function.L01_Function
|
||||||
|
import Adam.Levels.Function.L02_Let
|
||||||
|
import Adam.Levels.Function.L03_Piecewise
|
||||||
|
import Adam.Levels.Function.L04_Injective
|
||||||
|
import Adam.Levels.Function.L05_Injective
|
||||||
|
import Adam.Levels.Function.L06_Injective
|
||||||
|
import Adam.Levels.Function.L07_Surjective
|
||||||
|
import Adam.Levels.Function.L08_Bijective
|
||||||
|
import Adam.Levels.Function.L09_Inverse
|
||||||
|
import Adam.Levels.Function.L11_Inverse
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Function"
|
||||||
|
Title "Abbildungen"
|
||||||
|
|
||||||
|
Introduction "
|
||||||
|
Auf der Suche nach dem Buch der Urbilder landet ihr auf einem kleinen Mond, der bis auf
|
||||||
|
eine Insel komplett mit Wasser bedeckt zu sein scheint.
|
||||||
|
|
||||||
|
Auf der Insel seht ihr verschiedene große und kleine Behausungen, manche aus Stroh und Holz,
|
||||||
|
vereinzelte aus Lehm.
|
||||||
|
|
||||||
|
Planlos geht ihr zum ersten Haus bei dem jemand vorne außen sitzt.
|
||||||
|
"
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 1
|
Level 1
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 2
|
Level 2
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 3
|
Level 3
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 4
|
Level 4
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 5
|
Level 5
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 6
|
Level 6
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 7
|
Level 7
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 9
|
Level 9
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 10
|
Level 10
|
||||||
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 2
|
Level 2
|
||||||
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 4
|
Level 4
|
||||||
|
|
||||||
@ -1,9 +1,11 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Init.Data.ToString
|
import Init.Data.ToString
|
||||||
-- #check List UInt8
|
-- #check List UInt8
|
||||||
|
|
||||||
Game "TestGame"
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 7
|
Level 7
|
||||||
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 8
|
Level 8
|
||||||
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.Cases
|
import Mathlib.Tactic.Cases
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 9
|
Level 9
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.Cases
|
import Mathlib.Tactic.Cases
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 10
|
Level 10
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.Cases
|
import Mathlib.Tactic.Cases
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 11
|
Level 11
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.Cases
|
import Mathlib.Tactic.Cases
|
||||||
import Mathlib.Logic.Basic
|
import Mathlib.Logic.Basic
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 12
|
Level 12
|
||||||
|
|
||||||
@ -1,11 +1,11 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.LeftRight
|
import Mathlib.Tactic.LeftRight
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 13
|
Level 13
|
||||||
|
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
import Adam.Levels.Induction.L01_Induction
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Induction"
|
||||||
|
Title "Übungen Induktions"
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Induction"
|
World "Induction"
|
||||||
Level 1
|
Level 1
|
||||||
|
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
import Adam.Levels.Inequality.L01_LE
|
||||||
|
import Adam.Levels.Inequality.L02_Pos
|
||||||
|
import Adam.Levels.Inequality.L03_Linarith
|
||||||
|
import Adam.Levels.Inequality.L04_Linarith
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Inequality"
|
||||||
|
Title "Ungleichung"
|
||||||
|
|
||||||
|
Introduction "
|
||||||
|
Später erinnerst du dich gar nicht mehr wo und wann du diese Unterhaltung hattest, geschweige
|
||||||
|
denn mit wem. Vielleicht war es ein Traum, oder eine Erscheinung. Vielleicht war es
|
||||||
|
auch nur eines Abends über einer Runde Getränke.
|
||||||
|
|
||||||
|
Aber auf jedenfall hast du irgendwo gelernt, was du nun weisst.
|
||||||
|
"
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Inequality"
|
World "Inequality"
|
||||||
Level 1
|
Level 1
|
||||||
|
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
import Adam.Levels.Lean.L01_Type
|
||||||
|
import Adam.Levels.Lean.L02_Universe
|
||||||
|
import Adam.Levels.Lean.L03_ImplicitArguments
|
||||||
|
import Adam.Levels.Lean.L04_InstanceArguments
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Lean"
|
||||||
|
Title "Lean"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"Während ihr weiter durch Täler, über Geröllhalden und zwischen monumentalen Steintürmen
|
||||||
|
umherzieht, fragst Du eines Tages Robo.
|
||||||
|
|
||||||
|
**Du**: Sag mal, hast du dir je Gedanken dazu gemacht, wie du eigentlich funktionierts?
|
||||||
|
|
||||||
|
**Robo**: Was meinst du, wie ich funktioniere? Ich bin halt… ich…
|
||||||
|
|
||||||
|
**Du**: Ja schon, aber was woher weisst du denn alles was du weisst?
|
||||||
|
|
||||||
|
**Robo**: Das kann ich dir sagen. Früher habe ich viele Datenträger verschlungen,
|
||||||
|
und dadurch gelernt.
|
||||||
|
|
||||||
|
**Du**: Ob so eine Diskette wohl lecker schmeckt? Egal, ich hab ein paar Fragen zu deinem
|
||||||
|
Lean-Modul.
|
||||||
|
|
||||||
|
**Robo**: Na dann nur zu!"
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
import Adam.Metadata
|
||||||
|
|
||||||
|
import Mathlib
|
||||||
|
|
||||||
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Lean"
|
||||||
|
Level 2
|
||||||
|
|
||||||
|
Title "Universen"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"**Du**: Aber wenn alles Typen sind, welcher Typ hat dann `Type`?
|
||||||
|
|
||||||
|
**Robo**: `Type 1` und dieser hat Typ `Type 2`, etc.
|
||||||
|
|
||||||
|
**Robo**: Die Zahl nennt man *Universum*. Manchmal führt man Universen explizit
|
||||||
|
mit `universum u` ein, öfter siehst du `(R : Type _)`, was einfach ein Platzhalter
|
||||||
|
für irgend ein Universum ist.
|
||||||
|
|
||||||
|
**Du**: Das klingt ein bisschen nach Mengentheoretische Probleme, die man normalerweise
|
||||||
|
ignoriert.
|
||||||
|
|
||||||
|
**Robo**: Genau! Deshalb schreibt man eigentlich immer einfach `Type _` und ist glücklich.
|
||||||
|
Spezifischer muss man erst werden wenn man sowas wie Kategorientheorie anschaut, wo
|
||||||
|
man die Universen tatsächlich kontrollieren muss.
|
||||||
|
|
||||||
|
**Du**: Oke, hier rein, da raus. Aber hast du mir noch eine Aufgabe?
|
||||||
|
"
|
||||||
|
|
||||||
|
universe u
|
||||||
|
|
||||||
|
Statement
|
||||||
|
(R : Type u) [CommRing R] (a b : R) : a + b = b + a := by
|
||||||
|
Hint "**Robo**: Naja, Aufgaben zu Universen sind nicht so natürlich,
|
||||||
|
aber vorige Aufgabe würde man eigentlich besser so schreiben, da
|
||||||
|
kannst du mindestens das Uniersum beobachten."
|
||||||
|
ring
|
||||||
|
|
||||||
|
Conclusion "**Du**: Na dann. Aber gut dass ich's mal gesehen hab."
|
||||||
|
|
||||||
|
-- Hint (R : Type) (h : CommRing R) (a : R) (b : R) : a + b = b + a =>
|
||||||
|
-- ""
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Std.Tactic.RCases
|
import Std.Tactic.RCases
|
||||||
import Mathlib.Tactic.LeftRight
|
import Mathlib.Tactic.LeftRight
|
||||||
|
|
||||||
set_option tactic.hygienic false
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Implication"
|
World "Implication"
|
||||||
Level 9
|
Level 9
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Nat2"
|
World "Nat2"
|
||||||
Level 3
|
Level 3
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Nat2"
|
World "Nat2"
|
||||||
Level 5
|
Level 5
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
-- -- INCORPORATED
|
-- -- INCORPORATED
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib.Tactic.Ring
|
import Mathlib.Tactic.Ring
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Function"
|
World "Function"
|
||||||
Level 1
|
Level 1
|
||||||
|
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
import Adam.Levels.LinearAlgebra.L01_Module
|
||||||
|
import Adam.Levels.LinearAlgebra.L02_VectorNotation
|
||||||
|
import Adam.Levels.LinearAlgebra.L03_VectorNotation
|
||||||
|
import Adam.Levels.LinearAlgebra.L04_Submodule
|
||||||
|
import Adam.Levels.LinearAlgebra.L05_Submodule
|
||||||
|
import Adam.Levels.LinearAlgebra.L06_Span
|
||||||
|
import Adam.Levels.LinearAlgebra.L07_Span
|
||||||
|
import Adam.Levels.LinearAlgebra.L08_GeneratingSet
|
||||||
|
|
||||||
|
import Adam.Levels.LinearAlgebra.M01_LinearMap
|
||||||
|
import Adam.Levels.LinearAlgebra.M02_LinearIndep
|
||||||
|
import Adam.Levels.LinearAlgebra.M04_Basis
|
||||||
|
|
||||||
|
import Adam.Levels.LinearAlgebra.N01_Span
|
||||||
|
import Adam.Levels.LinearAlgebra.N02_Span
|
||||||
|
import Adam.Levels.LinearAlgebra.N03_Idempotent
|
||||||
|
import Adam.Levels.LinearAlgebra.N04_Idempotent
|
||||||
|
import Adam.Levels.LinearAlgebra.N05_Sum
|
||||||
|
import Adam.Levels.LinearAlgebra.N06_Sum
|
||||||
|
import Adam.Levels.LinearAlgebra.N07_Prod
|
||||||
|
import Adam.Levels.LinearAlgebra.N08_Prod
|
||||||
|
import Adam.Levels.LinearAlgebra.N09_Prod
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Module"
|
||||||
|
Title "Vektorraum"
|
||||||
|
|
||||||
|
Introduction "Hier lernst du die Grundlagen zur linearen Algebra.
|
||||||
|
|
||||||
|
Vektorräume sind in Lean etwas algemeiner definiert als dies normalerweise in
|
||||||
|
einer Einführungsvorlesung antrifft: Man definiert ein \"Modul\" (Plural: Moduln)
|
||||||
|
über einem Ring. Ein Modul über einem *Körper* wird dann auch \"Vektorraum\" genannt.
|
||||||
|
"
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Basis"
|
||||||
|
Title "Lineare Abbildungen"
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Module2"
|
||||||
|
Title "Mehr Vektorräume"
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module"
|
World "Module"
|
||||||
Level 4
|
Level 4
|
||||||
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module"
|
World "Module"
|
||||||
Level 5
|
Level 5
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
import Mathlib.Data.Real.Basic
|
import Mathlib.Data.Real.Basic
|
||||||
import Mathlib.LinearAlgebra.Basic
|
import Mathlib.LinearAlgebra.Basic
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module2"
|
World "Module2"
|
||||||
Level 3
|
Level 3
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
import Mathlib.Data.Real.Basic
|
import Mathlib.Data.Real.Basic
|
||||||
import Mathlib.LinearAlgebra.Basic
|
import Mathlib.LinearAlgebra.Basic
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module2"
|
World "Module2"
|
||||||
Level 4
|
Level 4
|
||||||
|
|
||||||
@ -1,11 +1,11 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
import Mathlib.LinearAlgebra.Span
|
import Mathlib.LinearAlgebra.Span
|
||||||
|
|
||||||
open Submodule
|
open Submodule
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module2"
|
World "Module2"
|
||||||
Level 5
|
Level 5
|
||||||
|
|
||||||
@ -1,11 +1,11 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
import Mathlib.LinearAlgebra.Span
|
import Mathlib.LinearAlgebra.Span
|
||||||
|
|
||||||
open Submodule
|
open Submodule
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module2"
|
World "Module2"
|
||||||
Level 6
|
Level 6
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
import Mathlib.Data.Real.Basic
|
import Mathlib.Data.Real.Basic
|
||||||
import Mathlib.LinearAlgebra.Span
|
import Mathlib.LinearAlgebra.Span
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module2"
|
World "Module2"
|
||||||
Level 7
|
Level 7
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
|
|
||||||
import Mathlib.Algebra.Module.Submodule.Lattice
|
import Mathlib.Algebra.Module.Submodule.Lattice
|
||||||
import Mathlib.Data.Real.Basic
|
import Mathlib.Data.Real.Basic
|
||||||
import Mathlib.LinearAlgebra.Span
|
import Mathlib.LinearAlgebra.Span
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Module2"
|
World "Module2"
|
||||||
Level 9
|
Level 9
|
||||||
|
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
import Adam.Levels.Numbers.L01_PNat
|
||||||
|
import Adam.Levels.Numbers.L02_PNat
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import Adam.Metadata
|
||||||
import Mathlib
|
import Mathlib
|
||||||
|
|
||||||
Game "TestGame"
|
Game "Adam"
|
||||||
World "Numbers"
|
World "Numbers"
|
||||||
Level 1
|
Level 1
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue