This PR introduces date and time functionality to the Lean 4 Std. Breaking Changes: - `Lean.Data.Rat` is now `Std.Internal.Rat` because it's used by the DateTime library. --------- Co-authored-by: Markus Himmel <markus@himmel-villmar.de> Co-authored-by: Mac Malone <tydeu@hatpress.net>
100 lines
1.3 KiB
Text
100 lines
1.3 KiB
Text
import Std.Internal.Rat
|
|
open Std.Internal
|
|
|
|
/-!
|
|
Tests for `pp.numericTypes` and `pp.natLit`
|
|
|
|
RFC #3021
|
|
-/
|
|
|
|
open Lean
|
|
|
|
section
|
|
|
|
/-!
|
|
Both raw nat lits and non-raw natural numbers pretty print the same by default
|
|
-/
|
|
#check nat_lit 22
|
|
#check 22
|
|
|
|
set_option pp.natLit true
|
|
|
|
/-!
|
|
The raw nat lit pretty prints with the `nat_lit` prefix when `pp.natLit` is true.
|
|
-/
|
|
#check nat_lit 22
|
|
#check 22
|
|
|
|
end
|
|
|
|
section
|
|
set_option pp.numericTypes true
|
|
|
|
/-!
|
|
The `pp.numericTypes` option sets `pp.natLit` to true.
|
|
-/
|
|
#check nat_lit 22
|
|
|
|
/-!
|
|
Natural number literal
|
|
-/
|
|
#check (22 : Rat)
|
|
|
|
/-!
|
|
Negative integer literal
|
|
-/
|
|
#check (-22 : Rat)
|
|
|
|
/-!
|
|
Rational literal of two natural numbers
|
|
-/
|
|
#check (22 / 17 : Rat)
|
|
|
|
/-!
|
|
Rational literal of a negative integer and a rational
|
|
-/
|
|
#check (-22 / 17 : Rat)
|
|
|
|
/-!
|
|
Not a rational literal since the denominator is negative.
|
|
-/
|
|
#check (-22 / -17 : Rat)
|
|
|
|
/-!
|
|
Natural number literal for `Fin`.
|
|
-/
|
|
#check (17 : Fin 22)
|
|
|
|
/-!
|
|
Natural number literal for `Nat`.
|
|
-/
|
|
#check 2
|
|
|
|
/-!
|
|
Natural number literals in the context of an equation.
|
|
-/
|
|
#check 2 + 1 = 3
|
|
|
|
/-!
|
|
Testing `pp.all` override. The `2` should not appear with `nat_lit` in the `OfNat.ofNat` expression.
|
|
-/
|
|
set_option pp.all true
|
|
#check 2
|
|
|
|
end
|
|
|
|
section
|
|
set_option pp.all true
|
|
|
|
/-!
|
|
Testing `pp.all`.
|
|
-/
|
|
#check 2
|
|
|
|
/-!
|
|
Testing `pp.all` when `pp.natLit` is *explicitly* set to true.
|
|
-/
|
|
set_option pp.natLit true
|
|
#check 2
|
|
|
|
end
|