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.
lean4game/server/testgame/TestGame/Levels/LeanStuff/L02_Universe.lean

52 lines
1.3 KiB
Plaintext

2 years ago
import TestGame.Metadata
import Mathlib
set_option tactic.hygienic false
Game "TestGame"
World "LeanStuff"
Level 2
Title "Universen"
Introduction
"
2 years ago
Ein weitere Syntax, den man in Lean abundzu sieht sind Universen.
2 years ago
2 years ago
Diese sind für Mathematiker erst einmal nicht so wichtig, und es reicht zu wissen,
dass diese existieren.
2 years ago
2 years ago
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.
2 years ago
2 years ago
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.
2 years ago
2 years ago
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.*
2 years ago
"
Statement
2 years ago
""
(R : Type _) [CommRing R] (a b : R) : a + b = b + a := by
2 years ago
ring
2 years ago
-- Hint (R : Type) (h : CommRing R) (a : R) (b : R) : a + b = b + a =>
-- ""