lean4-htt/tests/elabissues
Joe Hendrix 903493799d
fix: reduceNat? match terms with free or meta variables (#3139)
This removes checks in `Lean.Meta.reduceNat?` that caused it to fail on
terms it could handle because they contain meta variables in arguments.
This lead to those operations being reduced using their equational
definitions and slow performance on large patterns:

```
set_option profiler true
set_option profiler.threshold 1

def testMod (x:Nat) :=
  match x with
  | 128 % 1024 => true
  | _ => false
-- elaboration took 3.02ms

def testMul (x:Nat) :=
  match x with
  | 128 * 1 => true
  | _ => false
-- type checking took 11.1ms
-- compilation of testMul.match_1 took 313ms
-- compilation of testMul took 65.7ms
-- elaboration took 58.9ms
```

Performance is slower on `testMul` than `testMod` because `whnf` ends up
evaluateing `128 * 1` using Peano arithmetic while `128 % 1024` is able
to avoid that treatment since `128 < 1024`.
2024-01-05 18:08:26 +00:00
..
anonymous_constructor_error_msg.lean
bind_with_existential_types.lean chore: avoid Has prefix in type classes 2020-10-27 18:29:19 -07:00
equation_compiler_slow_with_many_constructors.lean
equation_compiler_slow_with_many_constructors2.lean chore: avoid Has prefix in type classes 2020-10-27 18:29:19 -07:00
error_aux_decl_exists.lean
ImplicitLambdas.lean
invalid_field_notation_error_msg.lean chore: fix more typos in comments 2023-10-08 14:37:34 -07:00
issues1.lean
issues2.lean
issues3.lean chore: avoid Has prefix in type classes 2020-10-27 18:29:19 -07:00
issues4.lean
issues5.lean
issues6.lean
issues7.lean
issues8.lean fix: malformed/misaligned markdown code fences 2022-07-20 11:12:42 +02:00
leaky_tmp_metavars.lean chore: fix more typos in comments 2023-10-08 14:37:34 -07:00
leaky_tmp_metavars2.lean
let_destruct_inside_forall.lean
namespace_vs_prefix.lean
nested_namespace_vs_prefix.lean
overload_with_list_coercion.lean
patternIssue.lean
private.lean
ProjNotation.lean
reduceNatWithMeta.lean fix: reduceNat? match terms with free or meta variables (#3139) 2024-01-05 18:08:26 +00:00
Reid1.lean
structInst.lean chore: avoid Has prefix in type classes 2020-10-27 18:29:19 -07:00
structure_same_names2.lean
typeclass_nested_validate.lean
typeclass_triggers_typeclass.lean
typeclasses_with_emetavariables.lean
typeclasses_with_preconditions.lean chore: style use · instead of . for lambda dot notation 2022-03-11 07:49:03 -08:00
typeclasses_with_umetavariables.lean chore: fix more typos in comments 2023-10-08 14:37:34 -07:00
variable_universe_bug.lean feat: subsume variables under variable 2021-01-22 14:36:05 +01:00
vars.lean chore: fix more typos in comments 2023-10-08 14:37:34 -07:00
zmod.lean chore: move pp_options.cpp to Lean 2021-01-27 14:16:12 +01:00