(* This file contains tactics that are similar to ssreflect tactics. * The tactics here use numbers to refer to hypotheses to the right * of the entailment. *)
Section indexed.
Context {L : Type}
{ILO : ILogicOps L}
{IL : ILogic L}.

(* Specifications: *)
(* Destruct *)
Theorem destruct_top
: forall A B C D : L,
A |-- B -->> C -->> D ->
A |-- B //\\ C -->> D.
(* Move *)
Theorem move_top
: forall A B C D : L,
A //\\ C |-- B -->> D ->
(A //\\ B) //\\ C |-- D.
(* Copy *)
Theorem copy_top
: forall A B C : L,
A |-- B -->> B -->> C ->
A |-- B -->> C.
(* Copy *)
Theorem clear_top
: forall A B C : L,
A |-- C ->
A |-- B -->> C.
Theorem skip_top : forall A B C D : L,
(A //\\ B) //\\ C |-- D ->
A //\\ C |-- B -->> D.
Lemma apply_ctx : forall A B C : L,
C |-- A ->
C //\\ (A -->> B) |-- B.
Lemma apply_ctx' : forall A B C D : L,
C //\\ B |-- D ->
C |-- A ->
C //\\ (A -->> B) |-- D.