Skip to content
Snippets Groups Projects
Commit 1d937ab3 authored by Ralf Jung's avatar Ralf Jung
Browse files

make f_contractive consistent with f_equiv

parent 9ed67339
No related branches found
No related tags found
No related merge requests found
...@@ -253,15 +253,17 @@ End contractive. ...@@ -253,15 +253,17 @@ End contractive.
Ltac f_contractive := Ltac f_contractive :=
match goal with match goal with
| |- ?f _ {_} ?f _ => simple apply (_ : Proper (dist_later _ ==> _) f) | |- ?f _ {_} ?f _ => simple apply (_ : Proper (dist_later _ ==> dist _) f)
| |- ?f _ _ {_} ?f _ _ => simple apply (_ : Proper (dist_later _ ==> _ ==> _) f) | |- ?f _ _ {_} ?f _ _ => simple apply (_ : Proper (dist_later _ ==> _ ==> dist _) f)
| |- ?f _ _ {_} ?f _ _ => simple apply (_ : Proper (_ ==> dist_later _ ==> _) f) | |- ?f _ _ {_} ?f _ _ => simple apply (_ : Proper (_ ==> dist_later _ ==> dist _) f)
end; end;
try match goal with try match goal with
| |- @dist_later ?A _ ?n ?x ?y => | |- @dist_later ?A _ ?n ?x ?y =>
destruct n as [|n]; [exact I|change (@dist A _ n x y)] destruct n as [|n]; [exact I|change (@dist A _ n x y)]
end; end;
try simple apply reflexivity. (* Only try reflexivity if the terms are syntactically equal. This avoids
very expensive failing unification. *)
try match goal with |- _ ?x ?x => simple apply reflexivity end.
Ltac solve_contractive := Ltac solve_contractive :=
solve_proper_core ltac:(fun _ => first [f_contractive | f_equiv]). solve_proper_core ltac:(fun _ => first [f_contractive | f_equiv]).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment