After this commit, new interactice tactic classes can be added without
writing C++ code (see example: tests/lean/run/my_tac_class.lean).
The tactic_evaluator was simplified, and all the complexity has been
moved to tactic_notation, and lean code.
We can now inspect the intermediate states produced by the rewrite
tactic.
The function (@scope_trace _ line col thunk) can be used to position trace
messages produced by thunk. If line/col are not provided (i.e., we
just write (scope_trace thunk)), then line/col are filled with the
position of this term by the elaborator.
We can visualize the intermediate tactic states inside nested blocks
such as (try { ... })
The new infrastructure can be used to implement custom tactic_state
pretty printers.
41 lines
1.6 KiB
Text
41 lines
1.6 KiB
Text
hole_issue2.lean:22:74: error: don't know how to synthesize placeholder
|
|
context:
|
|
A : Type,
|
|
b₁ b₂ : bag A,
|
|
l₁ l₂ : list A,
|
|
_match : Π (b : bool), subcount l₁ l₂ = b → decidable (⟦l₁⟧ ⊆ ⟦l₂⟧),
|
|
H : subcount l₁ l₂ = ff,
|
|
h : ⟦l₁⟧ ⊆ ⟦l₂⟧,
|
|
w : A,
|
|
hw : ¬list.count w l₁ ≤ list.count w l₂
|
|
⊢ false
|
|
hole_issue2.lean:22:74: error: elaborator failed
|
|
Additional information:
|
|
hole_issue2.lean:19:0: context: the inferred motive for the eliminator-like application is
|
|
λ (_x _x_1 : bag A), decidable (_x ⊆ _x_1)
|
|
hole_issue2.lean:29:65: error: don't know how to synthesize placeholder
|
|
context:
|
|
A : Type,
|
|
b₁ b₂ : bag A,
|
|
l₁ l₂ : list A,
|
|
_match : Π (b : bool), subcount l₁ l₂ = b → decidable (⟦l₁⟧ ⊆ ⟦l₂⟧),
|
|
H : subcount l₁ l₂ = ff,
|
|
h : ⟦l₁⟧ ⊆ ⟦l₂⟧
|
|
⊢ ∀ (a : A), ¬list.count a l₁ ≤ list.count a l₂ → false
|
|
hole_issue2.lean:29:65: error: elaborator failed
|
|
Additional information:
|
|
hole_issue2.lean:26:0: context: the inferred motive for the eliminator-like application is
|
|
λ (_x _x_1 : bag A), decidable (_x ⊆ _x_1)
|
|
hole_issue2.lean:36:28: error: don't know how to synthesize placeholder
|
|
context:
|
|
A : Type,
|
|
b₁ b₂ : bag A,
|
|
l₁ l₂ : list A,
|
|
_match : Π (b : bool), subcount l₁ l₂ = b → decidable (⟦l₁⟧ ⊆ ⟦l₂⟧),
|
|
H : subcount l₁ l₂ = ff,
|
|
h : ⟦l₁⟧ ⊆ ⟦l₂⟧
|
|
⊢ false
|
|
hole_issue2.lean:36:28: error: elaborator failed
|
|
Additional information:
|
|
hole_issue2.lean:33:0: context: the inferred motive for the eliminator-like application is
|
|
λ (_x _x_1 : bag A), decidable (_x ⊆ _x_1)
|