This PR sets up the new integrated test/bench suite. It then migrates all benchmarks and some related tests to the new suite. There's also some documentation and some linting. For now, a lot of the old tests are left alone so this PR doesn't become even larger than it already is. Eventually, all tests should be migrated to the new suite though so there isn't a confusing mix of two systems.
40 lines
1.4 KiB
Text
40 lines
1.4 KiB
Text
partial def fact : Nat → Nat
|
|
| 0 => 1
|
|
| (n+1) => (n+1)*fact n
|
|
|
|
#guard fact 10 == 3628800
|
|
#guard fact 100 == 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
|
|
|
|
theorem tst1 : fact 10 = 3628800 :=
|
|
by native_decide
|
|
|
|
theorem tst2 : fact 100 = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 :=
|
|
by native_decide
|
|
|
|
theorem tst3 : decide (10000000000000000 < 200000000000000000000) = true :=
|
|
by native_decide
|
|
|
|
theorem tst4 : 10000000000000000 < 200000000000000000000 :=
|
|
by decide
|
|
|
|
theorem tst5 : 10000000000000000 < 200000000000000000000 :=
|
|
by native_decide
|
|
|
|
theorem tst6 : 10000000000000000 < 200000000000000000000 :=
|
|
let h₁ : 10000000000000000 < 10000000000000010 := by native_decide
|
|
let h₂ : 10000000000000010 < 200000000000000000000 := by native_decide
|
|
Nat.lt_trans h₁ h₂
|
|
|
|
theorem tst7 : 10000000000000000 < 200000000000000000000 :=
|
|
by decide
|
|
|
|
theorem tst8 : 10000000000000000 < 200000000000000000000 :=
|
|
let h₁ : 10000000000000000 < 10000000000000010 := by decide
|
|
let h₂ : 10000000000000010 < 200000000000000000000 := by decide
|
|
Nat.lt_trans h₁ h₂
|
|
|
|
theorem tst9 : 10000000000000000 < 200000000000000000000 :=
|
|
by decide
|
|
|
|
theorem tst10 : 10000000000000000 < 200000000000000000000 :=
|
|
by native_decide
|