Skip to content

Instantly share code, notes, and snippets.

@Janno
Created March 14, 2024 16:20
Show Gist options
  • Save Janno/91fc68661c99eae1e7bcc983b5eabf4d to your computer and use it in GitHub Desktop.
Save Janno/91fc68661c99eae1e7bcc983b5eabf4d to your computer and use it in GitHub Desktop.
fast.v fails immediately, slow.v takes forever
Module Test1.
Axiom Timeless : forall {X:Type} (x:X), Prop.
Axiom biIndex : Type.
Axiom gFunctors : Type.
Axiom genv : Type.
Axiom State : Set.
Axiom code : Set.
Axiom roundup_gname : Set.
Axiom ptr : Set.
Record bi : Type := Bi
{ bi_car :> Type;
bi_sep : forall (_ : bi_car) (_ : bi_car), bi_car;
bi_exist : forall (A : Type) (_ : forall _ : A, bi_car), bi_car;
}.
Axiom cpp_logic : biIndex -> gFunctors -> Type.
Axiom bm_cpu_GlobalCfg : Type.
Axiom bm_dram_bm_aux_1_bm_dram_GlobalCfg : Type.
Axiom bm_dram_bm_aux_1_bm_dram_GlobalGName : bm_dram_bm_aux_1_bm_dram_GlobalCfg -> Set.
Axiom bm_dram_bm_aux_1_bm_dram_GlobalG : forall {ti : biIndex} {Σ : gFunctors}, cpp_logic ti Σ -> Set.
Axiom bm_cpu_GlobalG : forall {ti : biIndex} {Σ : gFunctors}, cpp_logic ti Σ -> Set.
Axiom user_signal_AbsPred : forall {thread_info : biIndex} {_Σ : gFunctors}, cpp_logic thread_info _Σ -> forall {_ : genv}, Type.
Axiom G : forall {ti : biIndex} {_Σ : gFunctors} (Σ : cpp_logic ti _Σ) {σ : genv}, bm_cpu_GlobalCfg -> @user_signal_AbsPred ti _Σ Σ σ -> Type.
Record seal (A : Type) (f : A) : Type := Build_seal { unseal : A; seal_eq : @eq A unseal f }.
Axiom monPred : forall (_ : biIndex) (_ : bi), Type.
Axiom monPred_sep_def : forall {I : biIndex} {PROP : bi} (_ : monPred I PROP) (_ : monPred I PROP), monPred I PROP.
Axiom monPred_sep_aux :
forall {I : biIndex} {PROP : bi},
@seal (forall (_ : monPred I PROP) (_ : monPred I PROP), monPred I PROP) (@monPred_sep_def I PROP).
Definition monPred_sep :
forall (I : biIndex) (PROP : bi) (_ : monPred I PROP) (_ : monPred I PROP), monPred I PROP
:=
fun (I : biIndex) (PROP : bi) => @unseal _ _ (@monPred_sep_aux I PROP).
Axiom iPropI : forall Σ : gFunctors, bi.
Axiom TODO: forall{P:Type}, P.
Definition mpredI :=
fun (thread_info : biIndex) (Σ : gFunctors) =>
{|
bi_car := monPred thread_info (iPropI Σ);
bi_sep := @monPred_sep _ _;
bi_exist := TODO;
|}.
Arguments mpredI {thread_info Σ}.
Axiom __at_body : forall {ti : biIndex} {Σ : gFunctors} {_Σ : cpp_logic ti Σ}, ptr -> @mpredI ti Σ -> @mpredI ti Σ.
Goal
forall (Tr : forall PROP : bi, bi_car PROP) (H : bm_cpu_GlobalCfg) (H0 : bm_dram_bm_aux_1_bm_dram_GlobalCfg)
(ti : biIndex) (_Σ : gFunctors) (Σ : cpp_logic ti _Σ) (σ : genv) (H2 : @user_signal_AbsPred ti _Σ Σ σ)
(H5 : @bm_dram_bm_aux_1_bm_dram_GlobalGName H0) (H7 : @bm_dram_bm_aux_1_bm_dram_GlobalG ti _Σ Σ) (H8 : @bm_cpu_GlobalG ti _Σ Σ)
(G0 : @G ti _Σ Σ σ H H2) (to_code_nvs : code) (vcpusharedg : roundup_gname) (body : @mpredI ti _Σ)
(recall_bit : bool)
(novastateinv : forall (_ : @bm_dram_bm_aux_1_bm_dram_GlobalGName H0) (_ : @bm_dram_bm_aux_1_bm_dram_GlobalG ti _Σ Σ)
(_ : @bm_cpu_GlobalG ti _Σ Σ) (_ : @G ti _Σ Σ σ H H2) (_ : roundup_gname)
(_ : bool) (_ : bool) (_ : bool), @mpredI ti _Σ)
(ecInv0 : forall _ : bool, @mpredI ti _Σ)
(_ : forall (a1 : ptr) (a3 : bool),
@Timeless (bi_car (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (ecInv0 a3)
(@bi_exist (@mpredI ti _Σ) State
(fun m : State =>
@bi_exist (@mpredI ti _Σ) bool
(fun about_to_ipc_reply : bool =>
@bi_exist (@mpredI ti _Σ) bool
(fun past_recall_in_roundup_impl : bool =>
@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ)
(novastateinv H5 H7 H8 G0 vcpusharedg about_to_ipc_reply a3
past_recall_in_roundup_impl )
(@__at_body ti _Σ Σ a1 (Tr _)))))))))))),
@Timeless (bi_car (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (ecInv0 recall_bit)
(@bi_exist (@mpredI ti _Σ) State
(fun m : State =>
@bi_exist (@mpredI ti _Σ) bool
(fun about_to_ipc_reply : bool =>
@bi_exist (@mpredI ti _Σ) bool
(fun past_recall_in_roundup_impl : bool =>
@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ)
(novastateinv H5 H7 H8 G0 vcpusharedg about_to_ipc_reply recall_bit
past_recall_in_roundup_impl ) body))))))))).
intros * T.
Timeout 1 Fail autoapply T with typeclass_instances.
End Test1.
Module Test1.
Axiom Timeless : forall {X:Type} (x:X), Prop.
Axiom biIndex : Type.
Axiom gFunctors : Type.
Axiom genv : Type.
Axiom State : Set.
Axiom code : Set.
Axiom roundup_gname : Set.
Axiom ptr : Set.
Record bi : Type := Bi
{ bi_car :> Type;
bi_sep : forall (_ : bi_car) (_ : bi_car), bi_car;
bi_exist : forall (A : Type) (_ : forall _ : A, bi_car), bi_car;
}.
Axiom cpp_logic : biIndex -> gFunctors -> Type.
Axiom bm_cpu_GlobalCfg : Type.
Axiom bm_dram_bm_aux_1_bm_dram_GlobalCfg : Type.
Axiom bm_dram_bm_aux_1_bm_dram_GlobalGName : bm_dram_bm_aux_1_bm_dram_GlobalCfg -> Set.
Axiom bm_dram_bm_aux_1_bm_dram_GlobalG : forall {ti : biIndex} {Σ : gFunctors}, cpp_logic ti Σ -> Set.
Axiom bm_cpu_GlobalG : forall {ti : biIndex} {Σ : gFunctors}, cpp_logic ti Σ -> Set.
Axiom user_signal_AbsPred : forall {thread_info : biIndex} {_Σ : gFunctors}, cpp_logic thread_info _Σ -> forall {_ : genv}, Type.
Axiom G : forall {ti : biIndex} {_Σ : gFunctors} (Σ : cpp_logic ti _Σ) {σ : genv}, bm_cpu_GlobalCfg -> @user_signal_AbsPred ti _Σ Σ σ -> Type.
Record seal (A : Type) (f : A) : Type := Build_seal { unseal : A; seal_eq : @eq A unseal f }.
Axiom monPred : forall (_ : biIndex) (_ : bi), Type.
Axiom monPred_sep_def : forall {I : biIndex} {PROP : bi} (_ : monPred I PROP) (_ : monPred I PROP), monPred I PROP.
Axiom monPred_sep_aux :
forall {I : biIndex} {PROP : bi},
@seal (forall (_ : monPred I PROP) (_ : monPred I PROP), monPred I PROP) (@monPred_sep_def I PROP).
Definition monPred_sep :
forall (I : biIndex) (PROP : bi) (_ : monPred I PROP) (_ : monPred I PROP), monPred I PROP
:=
fun (I : biIndex) (PROP : bi) => @unseal _ _ (@monPred_sep_aux I PROP).
Axiom iPropI : forall Σ : gFunctors, bi.
Axiom TODO: forall{P:Type}, P.
Definition mpredI :=
fun (thread_info : biIndex) (Σ : gFunctors) =>
{|
bi_car := monPred thread_info (iPropI Σ);
bi_sep := @monPred_sep _ _;
bi_exist := TODO;
|}.
Arguments mpredI {thread_info Σ}.
Axiom __at_body : forall {ti : biIndex} {Σ : gFunctors} {_Σ : cpp_logic ti Σ}, ptr -> @mpredI ti Σ -> @mpredI ti Σ.
Goal
forall (Tr : forall PROP : bi, bi_car PROP) (H : bm_cpu_GlobalCfg) (H0 : bm_dram_bm_aux_1_bm_dram_GlobalCfg)
(ti : biIndex) (_Σ : gFunctors) (Σ : cpp_logic ti _Σ) (σ : genv) (H2 : @user_signal_AbsPred ti _Σ Σ σ)
(H5 : @bm_dram_bm_aux_1_bm_dram_GlobalGName H0) (H7 : @bm_dram_bm_aux_1_bm_dram_GlobalG ti _Σ Σ) (H8 : @bm_cpu_GlobalG ti _Σ Σ)
(G0 : @G ti _Σ Σ σ H H2) (to_code_nvs : code) (vcpusharedg : roundup_gname) (body : @mpredI ti _Σ)
(recall_bit : bool)
(novastateinv : forall (_ : @bm_dram_bm_aux_1_bm_dram_GlobalGName H0) (_ : @bm_dram_bm_aux_1_bm_dram_GlobalG ti _Σ Σ)
(_ : @bm_cpu_GlobalG ti _Σ Σ) (_ : @G ti _Σ Σ σ H H2) (_ : roundup_gname) (_ : code)
(_ : bool) (_ : bool) (_ : bool), @mpredI ti _Σ)
(ecInv0 : forall _ : bool, @mpredI ti _Σ)
(_ : forall (a1 : ptr) (a3 : bool),
@Timeless (bi_car (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (ecInv0 a3)
(@bi_exist (@mpredI ti _Σ) State
(fun m : State =>
@bi_exist (@mpredI ti _Σ) bool
(fun about_to_ipc_reply : bool =>
@bi_exist (@mpredI ti _Σ) bool
(fun past_recall_in_roundup_impl : bool =>
@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ)
(novastateinv H5 H7 H8 G0 vcpusharedg to_code_nvs about_to_ipc_reply a3
past_recall_in_roundup_impl )
(@__at_body ti _Σ Σ a1 (Tr _)))))))))))),
@Timeless (bi_car (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (ecInv0 recall_bit)
(@bi_exist (@mpredI ti _Σ) State
(fun m : State =>
@bi_exist (@mpredI ti _Σ) bool
(fun about_to_ipc_reply : bool =>
@bi_exist (@mpredI ti _Σ) bool
(fun past_recall_in_roundup_impl : bool =>
@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ) (Tr (@mpredI ti _Σ))
(@bi_sep (@mpredI ti _Σ)
(novastateinv H5 H7 H8 G0 vcpusharedg to_code_nvs about_to_ipc_reply recall_bit
past_recall_in_roundup_impl ) body))))))))).
intros * T.
Timeout 10 autoapply T with typeclass_instances.
End Test1.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment