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

add typing.base; declare solve_typing and its DBs there

parent 0bd460e7
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -24,6 +24,7 @@ theories/lang/proofmode.v ...@@ -24,6 +24,7 @@ theories/lang/proofmode.v
theories/lang/races.v theories/lang/races.v
theories/lang/tactics.v theories/lang/tactics.v
theories/lang/spawn.v theories/lang/spawn.v
theories/typing/base.v
theories/typing/type.v theories/typing/type.v
theories/typing/util.v theories/typing/util.v
theories/typing/lft_contexts.v theories/typing/lft_contexts.v
......
From lrust.lifetime Require Export frac_borrow.
Create HintDb lrust_typing.
Create HintDb lrust_typing_merge.
(* We first try to solve everything without the merging rules, and
then start from scratch with them.
The reason is that we want we want the search proof search for
[tctx_extract_hasty] to suceed even if the type is an evar, and
merging makes it diverge in this case. *)
Ltac solve_typing :=
(typeclasses eauto with lrust_typing typeclass_instances core; fail) ||
(typeclasses eauto with lrust_typing lrust_typing_merge typeclass_instances core; fail).
...@@ -2,6 +2,7 @@ From iris.proofmode Require Import tactics. ...@@ -2,6 +2,7 @@ From iris.proofmode Require Import tactics.
From iris.base_logic Require Import big_op. From iris.base_logic Require Import big_op.
From iris.base_logic.lib Require Import fractional. From iris.base_logic.lib Require Import fractional.
From lrust.lang Require Import proofmode. From lrust.lang Require Import proofmode.
From lrust.typing Require Export base.
From lrust.lifetime Require Import frac_borrow. From lrust.lifetime Require Import frac_borrow.
Set Default Proof Using "Type". Set Default Proof Using "Type".
...@@ -453,19 +454,6 @@ End elctx_incl. ...@@ -453,19 +454,6 @@ End elctx_incl.
Arguments elctx_incl {_ _ _} _%EL _%LL _%EL _%EL. Arguments elctx_incl {_ _ _} _%EL _%LL _%EL _%EL.
Create HintDb lrust_typing.
Create HintDb lrust_typing_merge.
(* We first try to solve everything without the merging rules, and
then start from scratch with them.
The reason is that we want we want the search proof search for
[tctx_extract_hasty] to suceed even if the type is an evar, and
merging makes it diverge in this case. *)
Ltac solve_typing :=
(typeclasses eauto with lrust_typing typeclass_instances core; fail) ||
(typeclasses eauto with lrust_typing lrust_typing_merge typeclass_instances core; fail).
Hint Constructors Forall Forall2 elem_of_list : lrust_typing. Hint Constructors Forall Forall2 elem_of_list : lrust_typing.
Hint Resolve of_val_unlock : lrust_typing. Hint Resolve of_val_unlock : lrust_typing.
Hint Resolve Hint Resolve
......
...@@ -2,6 +2,7 @@ From iris.base_logic.lib Require Export na_invariants. ...@@ -2,6 +2,7 @@ From iris.base_logic.lib Require Export na_invariants.
From iris.base_logic Require Import big_op. From iris.base_logic Require Import big_op.
From lrust.lang Require Export proofmode notation. From lrust.lang Require Export proofmode notation.
From lrust.lifetime Require Export frac_borrow. From lrust.lifetime Require Export frac_borrow.
From lrust.typing Require Export base.
From lrust.typing Require Import lft_contexts. From lrust.typing Require Import lft_contexts.
Set Default Proof Using "Type". Set Default Proof Using "Type".
......
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