Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Iris
RefinedC
Commits
e6954f23
Commit
e6954f23
authored
Nov 24, 2021
by
Michael Sammler
Browse files
add unfold_let_goal_tac
parent
0c8e2c41
Pipeline
#57794
canceled with stage
in 7 minutes and 29 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
theories/lithium/interpreter.v
View file @
e6954f23
...
@@ -305,28 +305,19 @@ Tactic Notation "li_let_bind" constr(T) tactic3(tac) :=
...
@@ -305,28 +305,19 @@ Tactic Notation "li_let_bind" constr(T) tactic3(tac) :=
let
G
:
=
tac
H
in
let
G
:
=
tac
H
in
change_no_check
G
).
change_no_check
G
).
(* unfold_let_goal_tac lets users unfold custom definitions. *)
Ltac
unfold_let_goal_tac
H
:
=
idtac
.
Ltac
liUnfoldLetGoal
:
=
Ltac
liUnfoldLetGoal
:
=
match
goal
with
match
goal
with
|
|-
envs_entails
_
?P
=>
|
|-
envs_entails
_
?P
=>
let
H
:
=
get_head
P
in
let
H
:
=
get_head
P
in
is_var
H
;
is_var
H
;
unfold
LET_ID
in
H
;
unfold
LET_ID
in
H
;
unfold_let_goal_tac
H
;
(* This unfold inserts a cast but that is not too bad for
performance since the goal is small at this point. *)
unfold
H
;
unfold
H
;
try
clear
H
try
clear
H
(* lazymatch goal with *)
(* | |- envs_entails ?Δ ?P => *)
(* let h := get_head P in *)
(* is_var h; *)
(* let u := eval unfold h in h in *)
(* lazymatch u with *)
(* | LET_ID ?G => *)
(* lazymatch P with *)
(* | context C [h] => *)
(* let X := context C [G] in *)
(* change_no_check (envs_entails Δ X); *)
(* try clear h *)
(* end *)
(* end *)
end
.
end
.
Ltac
liUnfoldLetsInContext
:
=
Ltac
liUnfoldLetsInContext
:
=
...
...
theories/typing/automation.v
View file @
e6954f23
...
@@ -47,6 +47,9 @@ Ltac solve_protected_eq_unfold_tac ::=
...
@@ -47,6 +47,9 @@ Ltac solve_protected_eq_unfold_tac ::=
|
|-
_
=>
idtac
|
|-
_
=>
idtac
end
.
end
.
Ltac
unfold_let_goal_tac
H
:
=
unfold
RETURN_MARKER
in
H
.
Ltac
can_solve_tac
::
=
solve_goal
.
Ltac
can_solve_tac
::
=
solve_goal
.
Ltac
record_destruct_hint
hint
info
::
=
add_case_distinction_info
hint
info
.
Ltac
record_destruct_hint
hint
info
::
=
add_case_distinction_info
hint
info
.
...
...
theories/typing/automation/proof_state.v
View file @
e6954f23
...
@@ -23,8 +23,6 @@ Ltac unfold_code_marker_and_compute_map_lookup :=
...
@@ -23,8 +23,6 @@ Ltac unfold_code_marker_and_compute_map_lookup :=
Definition
RETURN_MARKER
`
{!
typeG
Σ
}
(
R
:
val
→
mtype
→
iProp
Σ
)
:
val
→
mtype
→
iProp
Σ
:
=
R
.
Definition
RETURN_MARKER
`
{!
typeG
Σ
}
(
R
:
val
→
mtype
→
iProp
Σ
)
:
val
→
mtype
→
iProp
Σ
:
=
R
.
Notation
"'HIDDEN'"
:
=
(
RETURN_MARKER
_
)
(
only
printing
).
Notation
"'HIDDEN'"
:
=
(
RETURN_MARKER
_
)
(
only
printing
).
(* simplify RETURN_MARKER as soon as it is applied enough in the goal *)
Arguments
RETURN_MARKER
_
_
_
_
_
/.
(** * Tactics for manipulating location information *)
(** * Tactics for manipulating location information *)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment