lean4-htt/tests/lean/ppNumericTypes.lean
Sofia Rodrigues e0d7c3ac79
feat: add date and time functionality (#4904)
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>
2024-11-14 14:04:19 +00:00

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