chore(frontends/lean): remove 'new_elaborator' option

This commit is contained in:
Leonardo de Moura 2016-09-20 08:32:37 -07:00
parent 465f898882
commit 9df712581b
204 changed files with 42 additions and 232 deletions

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura
-/
prelude
import init.logic init.applicative
set_option new_elaborator true
universe variables u v
structure [class] alternative (F : Type u → Type v) extends applicative F : Type (max u+1 v) :=

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura
-/
prelude
import init.functor
set_option new_elaborator true
universe variables u v
structure [class] applicative (F : Type u → Type v) extends functor F : Type (max u+1 v):=

View file

@ -3,7 +3,6 @@
-- Author: Leonardo de Moura
prelude
import init.datatypes
set_option new_elaborator true
namespace bool
attribute [inline]

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura
-/
prelude
import init.fin
set_option new_elaborator true
open nat
definition char_sz : nat := succ 255

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura, Jeremy Avigad
-/
prelude
import init.subtype init.funext
set_option new_elaborator true
namespace classical
open subtype
universe variables u v

View file

@ -25,7 +25,6 @@ a type to a sort.
-/
prelude
import init.list init.subtype init.prod
set_option new_elaborator true
universe variables u v
structure [class] has_lift (A : Type u) (B : Type v) :=

View file

@ -4,7 +4,6 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura
-/
prelude
set_option new_elaborator true
/- Combinator calculus -/
namespace combinator
universe variables u₁ u₂ u₃

View file

@ -6,7 +6,6 @@ Authors: Leonardo de Moura
Basic datatypes
-/
prelude
set_option new_elaborator true
notation `Prop` := Type 0
notation `Type₂` := Type 2

View file

@ -6,7 +6,6 @@ Author: Leonardo de Moura
prelude
import init.nat
open nat
set_option new_elaborator true
structure fin (n : nat) := (val : nat) (is_lt : val < n)
namespace fin

View file

@ -7,7 +7,6 @@ General operations on functions.
-/
prelude
import init.prod init.funext init.logic
set_option new_elaborator true
notation f ` $ `:1 a:1 := f a
universe variables u_a u_b u_c u_d u_e
variables {A : Type u_a} {B : Type u_b} {C : Type u_c} {D : Type u_d} {E : Type u_a}

View file

@ -4,7 +4,6 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Luke Nelson and Jared Roesch
-/
prelude
set_option new_elaborator true
universe variables u v
structure [class] functor (F : Type u → Type v) : Type (max u+1 v) :=

View file

@ -7,7 +7,6 @@ Extensional equality for functions, and a proof of function extensionality from
-/
prelude
import init.quot init.logic
set_option new_elaborator true
namespace function
universe variables u v

View file

@ -6,7 +6,6 @@ Authors: Leonardo de Moura
prelude
import init.meta.tactic init.meta.constructor_tactic
open tactic
set_option new_elaborator true
/-
Define id_locked using meta-programming because we don't have
syntax for setting reducibility_hints.

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura
-/
prelude
import init.meta.mk_dec_eq_instance init.subtype init.meta.occurrences init.sum
set_option new_elaborator true
open tactic subtype
universe variables u v

View file

@ -6,7 +6,6 @@ Author: Leonardo de Moura
prelude
import init.logic init.nat
open decidable list
set_option new_elaborator true
universe variables u v

View file

@ -6,7 +6,6 @@ Author: Leonardo de Moura
prelude
import init.monad init.alternative
open list
set_option new_elaborator true
universe variables u v
attribute [inline]
definition list_fmap {A : Type u} {B : Type v} (f : A → B) (l : list A) : list B :=

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura, Jeremy Avigad, Floris van Doorn
-/
prelude
import init.datatypes
set_option new_elaborator true
universe variables u v

View file

@ -5,7 +5,6 @@ Authors: Luke Nelson and Jared Roesch
-/
prelude
import init.applicative init.string init.trace
set_option new_elaborator true
universe variables u v
structure [class] monad (M : Type u → Type v) extends functor M : Type (max u+1 v) :=

View file

@ -7,7 +7,6 @@ Monad combinators, as in Haskell's Control.Monad.
-/
prelude
import init.monad init.list
set_option new_elaborator true
namespace monad
definition mapM {m : Type → Type} [monad m] {A B : Type} (f : A → m B) : list A → m (list B)

View file

@ -5,7 +5,6 @@ Authors: Floris van Doorn, Leonardo de Moura
-/
prelude
import init.relation init.num
set_option new_elaborator true
notation `` := nat

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.wf init.nat
set_option new_elaborator true
namespace nat
private definition div_rec_lemma {x y : nat} : 0 < y ∧ y ≤ x → x - y < x :=

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.bool
set_option new_elaborator true
namespace pos_num
protected definition mul (a b : pos_num) : pos_num :=

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.logic init.monad init.alternative
set_option new_elaborator true
open decidable
universe variables u v

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.to_string init.prod init.sum
set_option new_elaborator true
inductive ordering
| lt | eq | gt

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura, Jeremy Avigad
-/
prelude
import init.num init.relation
set_option new_elaborator true
notation A × B := prod A B
-- notation for n-ary tuples
notation `(` h `, ` t:(foldr `, ` (e r, prod.mk e r)) `)` := prod.mk h t

View file

@ -8,7 +8,6 @@ Quotient types.
prelude
import init.sigma init.setoid init.logic
open sigma.ops setoid
set_option new_elaborator true
universe variables u v

View file

@ -7,7 +7,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.logic
set_option new_elaborator true
-- TODO(Leo): remove duplication between this file and algebra/relation.lean
-- We need some of the following definitions asap when "initializing" Lean.

View file

@ -6,7 +6,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.relation
set_option new_elaborator true
universe variables u
structure [class] setoid (A : Type u) :=
(r : A → A → Prop) (iseqv : equivalence r)

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura, Jeremy Avigad, Floris van Doorn
-/
prelude
import init.datatypes init.num init.wf init.logic
set_option new_elaborator true
definition dpair := @sigma.mk
notation `Σ` binders `, ` r:(scoped P, sigma P) := r

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.logic init.monad init.alternative init.prod
set_option new_elaborator true
definition state (S : Type) (A : Type) : Type :=
S → A × S

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura
-/
prelude
import init.char init.list
set_option new_elaborator true
attribute [reducible]
definition string := list char

View file

@ -6,7 +6,6 @@ Author: Leonardo de Moura, Jeremy Avigad
prelude
import init.datatypes init.logic
open decidable
set_option new_elaborator true
universe variables u

View file

@ -7,7 +7,6 @@ The sum type, aka disjoint union.
-/
prelude
import init.logic
set_option new_elaborator true
notation A ⊕ B := sum A B

View file

@ -3,7 +3,6 @@
-- Author: Leonardo de Moura
prelude
import init.string
set_option new_elaborator true
/- This function has a native implementation that tracks time. -/
definition timeit {A : Type} (s : string) (f : unit → A) : A :=

View file

@ -3,7 +3,6 @@
-- Author: Leonardo de Moura
prelude
import init.string init.bool init.subtype init.unsigned init.prod init.sum
set_option new_elaborator true
open bool list sum prod sigma subtype nat
universe variables u v

View file

@ -3,7 +3,6 @@
-- Author: Leonardo de Moura
prelude
import init.string
set_option new_elaborator true
/- This function has a native implementation that displays the given string in the regular output stream. -/
definition trace {A : Type} (s : string) (f : unit → A) : A :=

View file

@ -5,7 +5,6 @@ Author: Leonardo de Moura
-/
prelude
import init.logic
set_option new_elaborator true
theorem unit_eq (a b : unit) : a = b :=
unit.rec_on a (unit.rec_on b rfl)

View file

@ -5,7 +5,6 @@ Authors: Leonardo de Moura
-/
prelude
import init.fin
set_option new_elaborator true
open nat
definition unsigned_sz : nat := succ 4294967295

View file

@ -75,7 +75,6 @@ namespace lean {
// Parser configuration options
static name * g_parser_show_errors;
static name * g_parser_parallel_import;
static name * g_new_elaborator;
bool get_parser_show_errors(options const & opts) {
return opts.get_bool(*g_parser_show_errors, LEAN_DEFAULT_PARSER_SHOW_ERRORS);
@ -84,10 +83,6 @@ bool get_parser_show_errors(options const & opts) {
bool get_parser_parallel_import(options const & opts) {
return opts.get_bool(*g_parser_parallel_import, LEAN_DEFAULT_PARSER_PARALLEL_IMPORT);
}
bool get_new_elaborator(options const & opts) {
return opts.get_bool(*g_new_elaborator, true);
}
// ==========================================
static name * g_anonymous_inst_name_prefix = nullptr;
@ -321,7 +316,6 @@ void parser::declare_sorry() {
void parser::updt_options() {
m_verbose = get_verbose(m_ios.get_options());
m_show_errors = get_parser_show_errors(m_ios.get_options());
m_new_elaborator = get_new_elaborator(m_ios.get_options());
try {
set_max_memory_megabyte(get_max_memory(m_ios.get_options()));
} catch (exception&) {
@ -2355,12 +2349,10 @@ bool parse_commands(environment & env, io_state & ios, char const * fname, optio
void initialize_parser() {
g_parser_show_errors = new name{"parser", "show_errors"};
g_parser_parallel_import = new name{"parser", "parallel_import"};
g_new_elaborator = new name{"new_elaborator"};
register_bool_option(*g_parser_show_errors, LEAN_DEFAULT_PARSER_SHOW_ERRORS,
"(lean parser) display error messages in the regular output channel");
register_bool_option(*g_parser_parallel_import, LEAN_DEFAULT_PARSER_PARALLEL_IMPORT,
"(lean parser) import modules in parallel");
register_bool_option(*g_new_elaborator, false, "(lean parser) use new elaborator");
g_tmp_prefix = new name(name::mk_internal_unique_name());
g_anonymous_inst_name_prefix = new name("_inst");
}
@ -2370,6 +2362,5 @@ void finalize_parser() {
delete g_tmp_prefix;
delete g_parser_show_errors;
delete g_parser_parallel_import;
delete g_new_elaborator;
}
}

View file

@ -234,9 +234,6 @@ public:
cmd_table const & cmds() const { return get_cmd_table(env()); }
/* TODO(Leo): delete after we finish the transition to new elaborator */
bool use_new_elaborator() const { return m_new_elaborator; }
void set_cache(definition_cache * c) { m_cache = c; }
void cache_definition(name const & n, expr const & pre_type, expr const & pre_value,
level_param_names const & ls, expr const & type, expr const & value, bool is_trusted);

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variables u
variables (A : Type u) [H : inhabited A] (x : A)
include H

View file

@ -1,4 +1,3 @@
set_option new_elaborator true open nat
section
universe l
definition A {n : } (t : Type l) := t

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
open tactic
constant f : nat → nat

View file

@ -1,9 +1,9 @@
attribute_bug1.lean:8:0: error: simp tactic failed to simplify
attribute_bug1.lean:7:0: error: simp tactic failed to simplify
state:
n :
⊢ f n = n + 1
constant fdef : ∀ (n : ), f n = n + 1
attribute_bug1.lean:20:0: error: simp tactic failed to simplify
attribute_bug1.lean:19:0: error: simp tactic failed to simplify
state:
n :
⊢ f n = n + 1

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variables u
definition foo (A : Type u) := A

View file

@ -1,2 +1,2 @@
attributes.lean:6:0: error: cannot remove attribute [reducible]
attributes.lean:10:0: error: cannot remove attribute [instance]
attributes.lean:5:0: error: cannot remove attribute [reducible]
attributes.lean:9:0: error: cannot remove attribute [instance]

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
inductive vec (A : Type*) : nat → Type*
| nil : vec 0

View file

@ -1,4 +1,4 @@
aux_decl_zeta.lean:7:0: error: equation compiler failed to create auxiliary declaration 'f._match_1', auxiliary declaration has references to let-declarations (possible solution: use 'set_option eqn_compiler.zeta true')
aux_decl_zeta.lean:6:0: error: equation compiler failed to create auxiliary declaration 'f._match_1', auxiliary declaration has references to let-declarations (possible solution: use 'set_option eqn_compiler.zeta true')
nested exception message:
type mismatch at application
x = w

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variables u
definition f : nat → nat → nat
| a .a := a

View file

@ -1,7 +1,7 @@
bad_inaccessible.lean:4:5: error: invalid use of inaccessible term, it is not fixed by other arguments
bad_inaccessible.lean:7:7: error: invalid use of inaccessible term, the provided term is
bad_inaccessible.lean:3:5: error: invalid use of inaccessible term, it is not fixed by other arguments
bad_inaccessible.lean:6:7: error: invalid use of inaccessible term, the provided term is
b
but is expected to be
a
bad_inaccessible.lean:15:3: error: invalid use of inaccessible term, it is not completely fixed by other arguments
bad_inaccessible.lean:14:3: error: invalid use of inaccessible term, it is not completely fixed by other arguments
.?m_1 + 1

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variables u
inductive vec (A : Type u) : nat → Type (max 1 u)
| nil {} : vec 0

View file

@ -1,4 +1,4 @@
bad_inaccessible2.lean:32:2: error: type mismatch at application
bad_inaccessible2.lean:31:2: error: type mismatch at application
map_head (cons a va) (cons b vb)
term
cons b vb

View file

@ -1,4 +1,3 @@
set_option new_elaborator true --
open tactic nat
example (a b : nat) : a ≠ b → ¬ a = b :=

View file

@ -8,7 +8,7 @@ a_1 : ¬¬a = b,
H : ¬a = b
⊢ false
-------
by_contradiction.lean:23:0: error: tactic by_contradiction failed, target is not a negation nor a decidable proposition (remark: when 'local attribute classical.prop_decidable [instance]' is used all propositions are decidable)
by_contradiction.lean:22:0: error: tactic by_contradiction failed, target is not a negation nor a decidable proposition (remark: when 'local attribute classical.prop_decidable [instance]' is used all propositions are decidable)
state:
p q : Prop,
a : ¬¬p

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
definition foo_attr : caching_user_attribute :=
⟨`foo, "bar", string, list.join ∘ list.map (list.append "\n" ∘ to_string ∘ declaration.to_name) ⟩

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variables u
namespace N1
definition pr {A : Type u} (a b : A) := a

View file

@ -1,5 +1,5 @@
pr : Π {A : Type u_1}, A → A → A
pr a b : N
choice_expl.lean:16:6: error: ambiguous overload, possible interpretations
choice_expl.lean:15:6: error: ambiguous overload, possible interpretations
N2.pr a b
N1.pr a b

View file

@ -2,4 +2,3 @@
prelude
set_option pp.colors false
set_option pp.unicode true
set_option new_elaborator true

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variable u
variable {A : Type u}

View file

@ -1,4 +1,4 @@
def1.lean:6:16: error: "eliminator" elaborator type mismatch, term
def1.lean:5:16: error: "eliminator" elaborator type mismatch, term
rfl
has type
?m_2 = ?m_2

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
axiom val : nat

View file

@ -1,2 +1,2 @@
def2.lean:5:0: error: definition 'foo' is noncomputable, it depends on 'val'
def2.lean:11:0: error: definition 'bla' was incorrectly marked as noncomputable
def2.lean:4:0: error: definition 'foo' is noncomputable, it depends on 'val'
def2.lean:10:0: error: definition 'bla' was incorrectly marked as noncomputable

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variable u
section
variable (A : Type u)

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
universe variable u
section
parameter (A : Type u)

View file

@ -1,5 +1,5 @@
f : A → A
def4.lean:10:8: error: type mismatch at application
def4.lean:9:8: error: type mismatch at application
f 0
term
0
@ -8,7 +8,7 @@ has type
but is expected to have type
A
g : A → A
def4.lean:18:8: error: type mismatch at application
def4.lean:17:8: error: type mismatch at application
g 0
term
0

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
set_option eqn_compiler.dsimp true
open nat

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
set_option eqn_compiler.lemmas false -- TODO(Leo): remove
definition f : string → nat → nat
| "hello world" 1 := 0

View file

@ -1,5 +1,4 @@
open tactic
set_option new_elaborator true
set_option pp.notation false
universe variables u
check

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
print "parametric meta_definition"
meta_definition f {A : Type} : nat → A → A → A

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
open nat
theorem succ_ne_self : ∀ (n : ), succ n ≠ n

View file

@ -1 +1 @@
eqn_compiler_loop.lean:4:8: error: invalid non-exhaustive set of equations (use 'set_option trace.eqn_compiler.elim_match true' for additional details)
eqn_compiler_loop.lean:3:8: error: invalid non-exhaustive set of equations (use 'set_option trace.eqn_compiler.elim_match true' for additional details)

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
definition f : nat → nat
| 0 := _

View file

@ -1,8 +1,8 @@
eqn_hole.lean:4:7: error: don't know how to synthesize placeholder
eqn_hole.lean:3:7: error: don't know how to synthesize placeholder
state:
f :
eqn_hole.lean:9:13: error: don't know how to synthesize placeholder
eqn_hole.lean:8:13: error: don't know how to synthesize placeholder
state:
g : ,
n :

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
set_option eqn_compiler.dsimp true
attribute [eqn_sanitizer]
definition succ_eq (a : nat) : nat.succ a = a + 1 :=

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
inductive foo
| mk : (nat → nat) → foo

View file

@ -1,4 +1,4 @@
hole_in_fn.lean:7:13: error: don't know how to synthesize placeholder
hole_in_fn.lean:6:13: error: don't know how to synthesize placeholder
state:
n :

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
constant bag_setoid : ∀ A, setoid (list A)
attribute [instance] bag_setoid

View file

@ -1,4 +1,4 @@
hole_issue2.lean:23:74: error: don't know how to synthesize placeholder
hole_issue2.lean:22:74: error: don't know how to synthesize placeholder
state:
A : Type,
b₁ b₂ : bag A,
@ -9,7 +9,7 @@ h : ⟦l₁⟧ ⊆ ⟦l₂⟧,
w : A,
hw : ¬list.count w l₁ ≤ list.count w l₂
⊢ false
hole_issue2.lean:30:65: error: don't know how to synthesize placeholder
hole_issue2.lean:29:65: error: don't know how to synthesize placeholder
state:
A : Type,
b₁ b₂ : bag A,
@ -18,7 +18,7 @@ _match : Π (b : bool), subcount l₁ l₂ = b → decidable (⟦l₁⟧ ⊆ ⟦
H : subcount l₁ l₂ = ff,
h : ⟦l₁⟧ ⊆ ⟦l₂⟧
⊢ ∀ (a : A), ¬list.count a l₁ ≤ list.count a l₂ → false
hole_issue2.lean:37:28: error: don't know how to synthesize placeholder
hole_issue2.lean:36:28: error: don't know how to synthesize placeholder
state:
A : Type,
b₁ b₂ : bag A,

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
inductive imf {A B : Type*} (f : A → B) : B → Type*
| mk : ∀ (a : A), imf (f a)

View file

@ -1,4 +1,4 @@
inaccessible2.lean:7:7: error: invalid occurrence of 'inaccessible' annotation, it must only occur in patterns
inaccessible2.lean:10:10: error: invalid pattern, must be an application, constant, variable, type ascription or inaccessible term
inaccessible2.lean:13:13: error: invalid pattern, must be an application, constant, variable, type ascription or inaccessible term
inaccessible2.lean:16:9: error: invalid pattern, in a constructor application, the parameters of the inductive datatype must be marked as inaccessible
inaccessible2.lean:6:7: error: invalid occurrence of 'inaccessible' annotation, it must only occur in patterns
inaccessible2.lean:9:10: error: invalid pattern, must be an application, constant, variable, type ascription or inaccessible term
inaccessible2.lean:12:13: error: invalid pattern, must be an application, constant, variable, type ascription or inaccessible term
inaccessible2.lean:15:9: error: invalid pattern, in a constructor application, the parameters of the inductive datatype must be marked as inaccessible

View file

@ -1,4 +1,3 @@
set_option new_elaborator true --
set_option pp.notation false
inductive [class] C (A : Type*)

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
definition f (A : Type*) (a : A) :=
have has_add A, from has_add.mk (λ (a b : A), a),

View file

@ -1,14 +1,14 @@
instance_cache1.lean:5:2: error: failed to synthesize type class instance for
instance_cache1.lean:4:2: error: failed to synthesize type class instance for
A : Type ?,
a : A,
this : has_add A
⊢ has_add A
instance_cache1.lean:8:7: error: failed to synthesize type class instance for
instance_cache1.lean:7:7: error: failed to synthesize type class instance for
A : Type ?,
a : A,
s : has_add A
⊢ has_add A
instance_cache1.lean:11:19: error: failed to synthesize type class instance for
instance_cache1.lean:10:19: error: failed to synthesize type class instance for
A : Type ?,
a : A,
s : has_add A

View file

@ -1,5 +1,4 @@
prelude -- Correct version
set_option new_elaborator true
check let bool := Type.{0},
and (p q : bool) := ∀ c : bool, (p → q → c) → c,
infixl `∧`:25 := and,

View file

@ -6,7 +6,7 @@ let bool : Type := Prop,
and_elim_right : Π (p q : bool), and p q → q := λ (p q : bool) (H : and p q), H q (λ (H1 : p) (H2 : q), H2)
in and_intro :
∀ (p q : Prop), p → q → ∀ (c : Prop), (p → q → c) → c
let1.lean:20:19: error: invalid let-expression, expression
let1.lean:19:19: error: invalid let-expression, expression
λ (p q : bool) (H1 : p) (H2 : q) (c : bool) (H : p → q → c), H H1 H2
has type
Π (p q : bool), p → q → Π (c : bool), (p → q → c) → c

View file

@ -1,5 +1,4 @@
--
set_option new_elaborator true
constant f : num → num → num → num

View file

@ -1,5 +1,4 @@
--
set_option new_elaborator true
constant f : num → num → num → num

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
definition f : string → nat → bool
| "hello world" 1 := tt

View file

@ -1 +1 @@
non_exhaustive_error.lean:3:11: error: invalid non-exhaustive set of equations (use 'set_option trace.eqn_compiler.elim_match true' for additional details)
non_exhaustive_error.lean:2:11: error: invalid non-exhaustive set of equations (use 'set_option trace.eqn_compiler.elim_match true' for additional details)

View file

@ -1,4 +1,3 @@
open subtype set_option new_elaborator true
theorem foo1 : 0 = (0:num) :=
rfl

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
constant g : nat → nat
noncomputable definition f := g

View file

@ -1,16 +1,16 @@
red.lean:10:19: error: type mismatch, expression
red.lean:9:19: error: type mismatch, expression
rfl
has type
?m_2 = ?m_2
but is expected to have type
f = g
red.lean:13:0: error: "eliminator" elaborator type mismatch, term
red.lean:12:0: error: "eliminator" elaborator type mismatch, term
rfl
has type
?m_2 = ?m_2
but is expected to have type
f a = a
red.lean:18:0: error: "eliminator" elaborator type mismatch, term
red.lean:17:0: error: "eliminator" elaborator type mismatch, term
rfl
has type
?m_2 = ?m_2

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
open nat
inductive type : Type

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
theorem ex2 {A : Type} (H : A = A) (a : A) : cast H a = a :=
rfl

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
open tactic expr
constant nat.add_assoc (a b c : nat) : (a + b) + c = a + (b + c)

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
example (a b : nat) (p : nat → nat → Prop) (h₁ : p a b) (h₂ : a = b) : p b b :=
@@eq.subst (λ x, p x b) h₂ h₁

View file

@ -1,5 +1,4 @@
prelude
set_option new_elaborator true
constant {l1 l2} A : Type l1 → Type l2
check A

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
theorem ex {A : Type} : ∀ {a a' : A}, a == a' → a = a'
| a .a (heq.refl .a) := eq.refl a

View file

@ -1,4 +1,3 @@
set_option new_elaborator true
inductive vec (A : Type*) : nat → Type*
| nil : vec 0

View file

@ -1,7 +1,6 @@
open nat
open eq
set_option pp.coercions true
set_option new_elaborator true
namespace foo
theorem trans {a b c : nat} (H1 : a = b) (H2 : b = c) : a = c :=
trans H1 H2

Some files were not shown because too many files have changed in this diff Show more