You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
Plaintext
52 lines
1.3 KiB
Plaintext
import TestGame.Metadata
|
|
|
|
import Mathlib
|
|
|
|
set_option tactic.hygienic false
|
|
|
|
Game "TestGame"
|
|
World "LeanStuff"
|
|
Level 2
|
|
|
|
Title "Universen"
|
|
|
|
Introduction
|
|
"
|
|
Ein weitere Syntax, den man in Lean abundzu sieht sind Universen.
|
|
|
|
Diese sind für Mathematiker erst einmal nicht so wichtig, und es reicht zu wissen,
|
|
dass diese existieren.
|
|
|
|
Da alle Objekte in Lean einen Typ haben, kann man sich fragen, welchen Typ hat eigentlich `Type`
|
|
selber? Die Anwort darauf ist dass `Type` vom Typ `Type 1` ist und dieses wiederum vom Typ `Type 2`
|
|
usw.
|
|
|
|
Da Lemmas in Lean gerne so algemein wie möglich formuliert werden, sieht man oft `(R : Type _)`
|
|
anstatt `(R : Type)`, wobei `_` einfach ein Platzhalter für eine Zahl ist.
|
|
|
|
Alternativ kann man auch explizit Universum-Levels definieren, so sind die folgenden beiden
|
|
Aussdrücke äquivalent:
|
|
|
|
```
|
|
variable (R : Type _)
|
|
|
|
universe u
|
|
variable (R : Type u)
|
|
```
|
|
|
|
In der Praxis kann man immer ohne bedenken `Type _` verwendenen und wenn man auf
|
|
(mengentheoretische)
|
|
Probleme stösst, muss man dan eventuell die Universen spezifizieren.
|
|
|
|
*Die Normalform ist eigentlich `(R : Type _)` zu schreiben solange man kein Grund hat
|
|
das Universum einzuschränken.*
|
|
"
|
|
|
|
Statement
|
|
""
|
|
(R : Type _) [CommRing R] (a b : R) : a + b = b + a := by
|
|
ring
|
|
|
|
-- Hint (R : Type) (h : CommRing R) (a : R) (b : R) : a + b = b + a =>
|
|
-- ""
|