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
d8593274
Commit
d8593274
authored
Nov 24, 2021
by
Michael Sammler
Browse files
try old unfold
parent
bbaaf408
Pipeline
#57788
passed with stage
in 11 minutes and 37 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
theories/lithium/interpreter.v
View file @
d8593274
...
@@ -306,20 +306,29 @@ Tactic Notation "li_let_bind" constr(T) tactic3(tac) :=
...
@@ -306,20 +306,29 @@ Tactic Notation "li_let_bind" constr(T) tactic3(tac) :=
change_no_check
G
).
change_no_check
G
).
Ltac
liUnfoldLetGoal
:
=
Ltac
liUnfoldLetGoal
:
=
lazymatch
goal
with
match
goal
with
|
|-
envs_entails
?
Δ
?P
=>
|
|-
envs_entails
_
?P
=>
let
h
:
=
get_head
P
in
let
rec
go
P
tac
:
=
is_var
h
;
match
P
with
let
u
:
=
eval
unfold
h
in
h
in
|
?Q
?R
=>
go
Q
tac
lazymatch
u
with
|
_
=>
is_var
P
;
tac
P
|
LET_ID
?G
=>
end
in
lazymatch
P
with
go
P
ltac
:
(
fun
P
=>
unfold
LET_ID
in
P
;
unfold
P
;
try
clear
P
)
|
context
C
[
h
]
=>
let
X
:
=
context
C
[
G
]
in
(* lazymatch goal with *)
change_no_check
(
envs_entails
Δ
X
)
;
(* | |- envs_entails ?Δ ?P => *)
try
clear
h
(* let h := get_head P in *)
end
(* is_var h; *)
end
(* 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
:
=
...
...
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